如何为此添加值,以便只允许数字输入?
function validatemycode() {
$('datagroup').on('keyup', 'input[id^="datagroup_1"]', function () {
if (!this.value){
alert('Alert Message Here.');
}
})
}
免费版的正则表达式:
function validatemycode() {
$('datagroup').on('blur', 'input[id^="datagroup_1"]', function () {
if (!isValidInput(this.value)) {
alert('Alert message here.');
}
});
}
function isValidInput(value) {
var allowedCharacters = '0123456789'.split('');
return string.split('').every(function (char) {
return allowedCharacters.includes(char);
});
}
在isValidInput
中发生的事情是:1。我们用0123456789
(= ['1','2','3','4','5','6','7','8','9']
)制作一个数组。
every
返回true
,这是:当前字符(原始字符串)包含在allowedCharacters
数组中。如果有一个不是数字的字符,我们返回false
。这也是函数式编程中的一个很好的练习。
注意:这不适用于Internet Explorer(因为那里不支持includes
)。
您可以使用RegExp
检查是否有任何不是数字的字符[^0-9]
$('.datagroup').on('blur', function () {
if (!this.value || this.value.match(new RegExp("[^0-9]", "g"))){
console.log('Not Ok');
}else{
console.log("Ok")
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="datagroup"/>
您可以使用方法检查字符串是否包含数字以外的内容。见下文:
var containsLettersOrCharacters = function(value) {
var split = value.split('');
for(var i = 0; i < split.length; i++) {
if(isNaN(Number(split[i]))) {
return true;
}
}
return false;
}
在这里,我们使用split()
将字符串分解为单个字符,然后循环遍历每个字符并检查Number(character)
的值是否为NaN
。如果isNaN()
在这里返回true,则表示该字符不是数字。
这里重要的是Number()对比字符串格式的数字以外的字符串将导致NaN值。
可以这样使用:
if(containsLettersOrCharacters(value)) {
//the string contained something other than numbers
}
希望这可以帮助。
您可以使用返回true或false的RegExp.prototype.test()。
var a = "abcABC";
var b = 1321321;
var c = "21321abc";
var d = "132 1321 ";
//only numbers
console.log(/^[0-9]+$/g.test(a))
console.log(/^[0-9]+$/g.test(b))
console.log(/^[0-9]+$/g.test(c))
console.log(/^[0-9]+$/g.test(d))
在你的代码中:
function validatemycode() {
$('datagroup').on('blur', 'input[id^="datagroup_1"]', function () {
if (/^[0-9]+$/g.test(this.value)){
alert('Alert message here.');
}
})
}