这应该很容易。我有以下代码:
var patt = new RegExp("\d{3}[\-]\d{1}");
var res = patt.test(myelink_account_val);
if(!res){
alert("Inputs must begin with something like XXX-X of numbers and a dash!");
return;
}
基本上,强制用户输入类似 101-4 的内容。代码借自Social Security Number input validation 。我可以确认我的输入确实像 101-4;只有前五个字符需要符合该模式。
但是运行我的代码总是会发出警报——条件永远不匹配。
一定很简单吗?!
谢谢。
最佳答案
当您使用“new RegExp”时,您将向其传递一个字符串。
这里有两个解决方案:
1) 不要使用“new RegExp()”,而是使用正则表达式模式:
var patt = /\d{3}[\-]\d{1}/
2)如果你想使用它,请记住你必须转义转义符:
var patt = new RegExp("\\d{3}[\\-]\\d{1}");
此外,请记住,如果“-”是 [] 上的唯一符号(或第一个或最后一个),则可以跳过转义:
var patt = new RegExp("\\d{3}[-]\\d{1}");
关于Javascript 正则表达式的模式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42276264/