per*_*ija 1 javascript regex jquery
我有一个正则表达式:
var pat = new RegExp("[0-9]{1}\.[0-9]{1}");
Run Code Online (Sandbox Code Playgroud)
我使用jQuery从文本框中获取一个数字:
var theValue = $(item).val();
Run Code Online (Sandbox Code Playgroud)
我一直在用这一行输入数字和测试正则表达式:
alert(pat.test(theValue));
Run Code Online (Sandbox Code Playgroud)
如果我输入数字.111则通过.这不应该是这种情况,因为第一个数字必须是0-9,然后是一个句点,然后是另一个数字0-9.我看不出我做错了什么.
要在字符串中使用,您需要转义\以便显示反斜杠字符.
var pat = new RegExp("[0-9]{1}\\.[0-9]{1}");
Run Code Online (Sandbox Code Playgroud)
一个更简洁,也许更可靠的形式是:
/[0-9]\.[0-9]/
Run Code Online (Sandbox Code Playgroud)
假设模式应匹配单个数字,后跟一个句点,后跟另一个单个数字.
您的反斜杠正在执行字符串转义而不是正则表达式转义.使用:
new RegExp("[0-9]{1}\\.[0-9]{1}");
Run Code Online (Sandbox Code Playgroud)
或者首选的正斜杠(RegExp literal)语法:
/[0-9]{1}\.[0-9]{1}/
Run Code Online (Sandbox Code Playgroud)
编辑:另外,正如ianpgall指出的那样,{1}不是必需的,因为[0-9]除非后面跟着a,否则字符类不是延迟的?.