Javascript RegEx for Pattern不工作

时间:2017-02-16 14:08:22

标签: javascript regex

这应该很容易。我有以下代码:

//form[contains(@class, 'sign-in-form')]//button

基本上,强制用户输入类似101-4的内容。代码来自Social Security Number input validation。我可以确认我的输入确实像101-4;只有前五个字符需要符合模式。

但是运行我的代码总是会发出警报 - 条件永远不会匹配。

一定要简单吗?!

感谢。

2 个答案:

答案 0 :(得分:1)

var patt = new RegExp("^\\d{3}[\\-]\\d{1}");
console.log(patt.test("123-4"));
console.log(patt.test("123-456"));
console.log(patt.test("12-4"));
console.log(patt.test("abc-d"));

答案 1 :(得分:1)

当您使用“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}");