我正在尝试验证一个美国手机号码,因为我使用的是预先构建的javascript验证库,所以我刚刚用验证库附带的前一个验证库替换了this正则表达式验证。
以前的验证正则表达式:
"telephone":{
"regex":"/^[0-9\-\(\)\ ]{10,10}$/",
"alertText":"* Invalid phone number"},这与2126661234类似,但不是在美国标准中。
在我改变之后:
"telephone":{
"regex":"/^[2-9]\d{2}-\d{3}-\d{4}$/",
"alertText":"* Invalid phone number"}, 现在,即使我输入212-666-1234,每次输入都会出现错误,我真的不知道哪里出了问题,所以我希望得到一些帮助。
发布于 2010-05-20 14:58:54
您需要转义反斜杠
"telephone":{
"regex":"/^[2-9]\\d{2}-\\d{3}-\\d{4}$/",
"alertText":"* Invalid phone number"}, /^[2-9]\d{2}-\d{3}-\d{4}$/只能在正则表达式文本中工作,如
var r = /^[2-9]\d{2}-\d{3}-\d{4}$/;使用字符串初始化regex时,应转义反斜杠
var r = new RegExp("^[2-9]\\d{2}-\\d{3}-\\d{4}$");发布于 2010-05-20 14:49:25
看起来原始的正则表达式避开了-符号,如下所示:\-。
在你的第二个例子中,我没有看到你这样做。
https://stackoverflow.com/questions/2871517
复制相似问题