如何为!this.value增加价值?

问题描述 投票:1回答:4

如何为此添加值,以便只允许数字输入?

function validatemycode() {
    $('datagroup').on('keyup', 'input[id^="datagroup_1"]', function () {
        if (!this.value){
            alert('Alert Message Here.');
        }
    })
}
javascript html keyup
4个回答
1
投票

免费版的正则表达式:

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'])制作一个数组。

  1. 我们从输入中创建一个数组(与上一步相同)。
  2. 如果数组的所有元素都通过测试,则every返回true,这是:当前字符(原始字符串)包含在allowedCharacters数组中。如果有一个不是数字的字符,我们返回false

这也是函数式编程中的一个很好的练习。

注意:这不适用于Internet Explorer(因为那里不支持includes)。


0
投票

您可以使用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"/>

0
投票

您可以使用方法检查字符串是否包含数字以外的内容。见下文:

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
}

希望这可以帮助。


0
投票

您可以使用返回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.');
        }
    })
}
© www.soinside.com 2019 - 2024. All rights reserved.