我在Google上搜索电话号码regex验证,但没有能够根据我的要求使它工作。
基本上,我对前缀有三套不同的规则:
在此之后,我可以允许类似于1888 letters之类的字母(这将属于第二个条件)。
到目前为止,这就是我所拥有的,但我不确定我是否涵盖了所有的内容:
var reg10 = /^[2-9]{3}[a-z0-9]+$/i;
var reg11 = /^[1-9]{4}[a-z0-9]+$/i;
var reg12plus = /^[0-9]{7}[a-z0-9]+$/i;发布于 2013-04-01 02:04:58
这可以由一个regex来处理(包括您的长度检查,正如其他人所建议的)。也许可以做得比这更简洁,但我觉得在您的3种具体的单独前缀要求中,这是更易读的:
^(?:[2-9]{3}[a-z0-9]{7})$|^(?:[1-9]{4}[a-z0-9]{7})$|^(?:[0-9]{7}[a-z0-9]{5,})$
基本上通过“交替”|将三个单独的案例组合在一起。
这可以稍微“正常化”,而不会“破坏”意图的清晰性,方法是将整个表达式分组,然后围绕着开始/结束锚(而不是在每个选项中重复这些,如上面所示)。虽然这样做的结果总体上是类似的长度规则,但是当我们添加额外的非捕获组时:
^(?:(?:[2-9]{3}[a-z0-9]{7})|(?:[1-9]{4}[a-z0-9]{7})|(?:[0-9]{7}[a-z0-9]{5,}))$
https://stackoverflow.com/questions/15736649
复制相似问题