Javascript 使用!用于正则表达式编号验证
当用户使用jQuery和regex输入数字以外的任何内容时,我试图显示一条错误消息。我该怎么做Javascript 使用!用于正则表达式编号验证,javascript,regex,Javascript,Regex,当用户使用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( $(this).val().match(/^[0-9]$/) ){
alert("Wrong input. Only numbers allowed");
}
我试过使用代码>但它不起作用,我没有收到错误消息
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( $(this).val().match(/[^0-9]/) ){
alert("Wrong input. Only numbers allowed");
}
将匹配任何包含非数字的字符串。按如下方式执行:
if( /\D/.test($(this).val()) ){
alert("Wrong input. Only numbers allowed");
}
\D
是非数字的任何字符(\D
是数字)
当您想要测试字符串是否与模式匹配时,不要使用:它构建了一个无用的数组。你需要的是
现在,让我们假设您想要测试用户是否输入了一个数字,而不仅仅是一系列数字。数字可以用符号、指数、点等书写。正确的测试方法不是使用正则表达式:
var s = $(this).val();
if (s != +s) {
alert("Wrong input. Only numbers allowed");
}
+s
是将s
转换为一个数字,NaN
如果不可能的话。这样做:
if( /\D/.test($(this).val()) ){
alert("Wrong input. Only numbers allowed");
}
\D
是非数字的任何字符(\D
是数字)
当您想要测试字符串是否与模式匹配时,不要使用:它构建了一个无用的数组。你需要的是
现在,让我们假设您想要测试用户是否输入了一个数字,而不仅仅是一系列数字。数字可以用符号、指数、点等书写。正确的测试方法不是使用正则表达式:
var s = $(this).val();
if (s != +s) {
alert("Wrong input. Only numbers allowed");
}
+s
是将s
转换为一个数字,NaN
(如果不可能)。处理整数和浮点数
if( !/^\d+(?:\.\d+)?$/.test($(this).val()) ){
alert("Wrong input. Only numbers allowed");
}
处理整数和浮点数
if( !/^\d+(?:\.\d+)?$/.test($(this).val()) ){
alert("Wrong input. Only numbers allowed");
}
我想你想做/[^0-9]/
,但你的问题不是很清楚。你想允许点吗?减号?我想你想做/[^0-9]/
,但你的问题不是很清楚。你想允许点吗?减号?并不是每天你都能找到一个很好的理由在比较中使用JavaScript的自动类型转换-很好!在比较中使用JavaScript的自动类型转换并不是每天都有好的理由——很好!那么“-3”呢?还是“2e-5”?我知道你可以修改你的正则表达式,至少在那些情况下是这样,但这比必要的复杂得多。那么“-3”呢?还是“2e-5”?我知道你可以修复你的正则表达式,至少在那些情况下是这样,但这比必要的要复杂得多。