Javascript 使用!用于正则表达式编号验证

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"); } 否定范

当用户使用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( /\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”?我知道你可以修复你的正则表达式,至少在那些情况下是这样,但这比必要的要复杂得多。