这应该很容易。我有以下代码:
//form[contains(@class, 'sign-in-form')]//button
基本上,强制用户输入类似101-4的内容。代码来自Social Security Number input validation。我可以确认我的输入确实像101-4;只有前五个字符需要符合模式。
但是运行我的代码总是会发出警报 - 条件永远不会匹配。
一定要简单吗?!
感谢。
答案 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}");