电话验证正则表达式,TEXT和TEXTTWO除外

时间:2013-05-29 18:09:31

标签: jquery regex jquery-validation-engine

我目前正在使用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})?$/

......主题的几个变种没有成功。

2 个答案:

答案 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})?)$/