我目前正在使用jQuery验证引擎和jQuery 1.10。在窥视验证脚本本身(对于电话号码是自定义类型)之后,我注意到它使用了以下正则表达式:
/^([\+][0-9]{1,3}[ \.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?$/
我要做的是将“TEXT”和“TEXTTWO”作为可接受的值。我试过了:
/^?(TEXT|TEXTTWO)^?([\+][0-9]{1,3}[ \.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?$/
......主题的几个变种没有成功。
答案 0 :(得分:2)
对你的尝试有好处!但似乎只有一件事你误解:^
是锚 - 它匹配字符串的开头 - 它无法量化,例如制作通过?
可选,在字符串的某些部分已经匹配之后出现也没有意义,因为那时它肯定不是字符串的开头。试试这个:
/^TEXT|TEXTTWO|([\+][0-9]{1,3}[ \.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?$/
所以,你对交替(|
)有正确的想法。请注意,交替具有正则表达式中所有运算符的最低优先级之一,因此此处不需要分组。
答案 1 :(得分:0)
这个怎么样:
/^(TEXT|TEXTTWO|([\+][0-9]{1,3}[ \.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?)$/