当用户使用jQuery和regex输入数字以外的其他内容时,我试图显示一条错误消息。我该怎么做呢?

if( $(this).val().match(/^[0-9]$/) ){
    alert("Wrong input. Only numbers allowed");
}


我尝试使用!,但是它不起作用,也没有错误消息

if( $(this).val().match(/![0-9]/) ){
    alert("Wrong input. Only numbers allowed");
}

最佳答案

像这样做 :

if( /\D/.test($(this).val()) ){
    alert("Wrong input. Only numbers allowed");
}


\D是不是数字的任何字符(\d是数字)。

当您要测试字符串是否与模式匹配时,请不要使用match:它会建立一个无用的数组。您需要的是test

现在,让我们假设您要测试用户是否输入了一个数字,而不仅仅是一个数字序列。可以用一个符号,一个指数,一个点等来写一个数字。进行测试的正确方法是不使用正则表达式:

var s = $(this).val();
if (s != +s) {
    alert("Wrong input. Only numbers allowed");
}


+ss到数字的转换,如果不可能,则转换为NaN

关于javascript - 使用!用于正则表达式编号验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30547654/

10-12 12:50
查看更多