否定的角色没有按预期工作? ^

时间:2012-01-10 12:35:52

标签: javascript regex regex-negation

我想让我的用户输入一个电话号码并选择他们自己的方式来分隔数字(或不是)。所以我提出了一个正则表达式:

var regex = /[^0-9 \/-\\\(\)\+]/;

在大多数情况下,它运行正常,但有一些示例,例如@:;,它不能像我期望的那样工作。有人可以给我一些提示吗?

这是我的意思的example

testvar = '123@213';
var regex = /[^0-9 \/-\\\(\)\+]/;
if(regex.test(testvar) === true) 
    { alert('Chars out of regex-range found'); } // won't fire!

2 个答案:

答案 0 :(得分:4)

如果你的意思,从/\还有很长的路要走。如果没有,你在破折号前错过了一个斜线:

var regex = /[^0-9 \/\-\\\(\)\+]/;

答案 1 :(得分:1)

电话号码只使用数字,我会忽略用户格式,只保留数字

var phonenum=value.replace(/\D+/g,'');