function validateFor9DigitNumber() {
var txt = document.getElementById('<%= txt9Digit.ClientId %>');
var textValue = parseInt(txt.value);
var regSSN1 = new RegExp("^\d{9}$");
if (isNaN(textValue))
alert("Not a Number");
else {
alert("A Number");
alert(regSSN1.test(textValue));
}
}
我需要一个Javascript函数,它可以匹配9位数字的文本值。
在上面需要的功能中,我会在else部分登陆并收到消息"A Number"
,但接收FALSE
以进行下一次验证。
当我输入一个9位数字时,请说123456789.即使使用egSSN1.match(textValue)
,我也会收到错误。
我哪里错了?
答案 0 :(得分:3)
var regSSN1 = new RegExp("^\\d{9}$");
(注意双反斜杠)
为正则表达式使用文字字符串时,必须使用双反斜杠。
你也可以这样做:
var regSSN1 = /^\d{9}$/;
避免这个问题。
答案 1 :(得分:1)
使用正则表达式文字避免在正则表达式字符串中转义问题:
/^\d{9}$/.test("123456789"); // true
否则:
new RegExp("^\d{9}$").test("123456789"); // false (matches literal backspace)
new RegExp("^\\d{9}$").test("123456789"); // true (backslash escaped)