Javascript RegExp.test allways返回true

VaN*_*VaN 1 javascript regex

我想创建一个javascript正则表达式来测试一个只接受0到9,a到z,A到Z以及以下字符的字符串的字符串:+*.总长度在1到10个字符之间.

我这样做了:

var reg = /[0-9A-Za-z\+\*\.]{1,12}/;
if(!reg.test($('#vat_id').val())) {
    return false;
}
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用.

我在http://www.regular-expressions.info/javascriptexample.html测试了它,我可以输入"$ av"并返回"成功匹配"

哪里出错了?

编辑:正则表达式现在似乎很好:

var reg = /^[0-9A-Za-z\+\*\.]{1,10}$/;
Run Code Online (Sandbox Code Playgroud)

但为什么我不能让它工作?

见http://jsfiddle.net/R2WZT/

Poi*_*nty 7

如果你不这样做"锚"的正则表达式来表示比赛应该从头开始,并在测试字符串的结束而终止,那么这被认为是指,你想看看,如果方式,可以发现在任何地方在串.

var reg = /^[0-9A-Za-z\+\*\.]{1,12}$/;
Run Code Online (Sandbox Code Playgroud)

随着^在开始和$结束时,你表明,整个字符串必须与模式相匹配; 也就是说,除了那些有助于匹配的字符串之外,字符串中不会出现任何字符.