当用户使用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");
}
+s
是s
到数字的转换,如果不可能,则转换为NaN
。关于javascript - 使用!用于正则表达式编号验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30547654/