我很难记入正则表达式来检查一个号码是以01
,02
还是08
开头,并且长度是十位或十一位数。
例如,我想要这样格式的数字传递:
01614125745
02074125475
0845895412
08004569321
并将其他表单编号为失败,编号如下:
0798224141
441544122444
0925456754
等等。基本上,任何不以01
02
或08
开头的数字。
答案 0 :(得分:14)
以下模式遵循以下标准:
/^(?=\d{10,11}$)(01|02|08)\d+/ # This pattern can easily be extended
/^(?=\d{10,11}$)0[128]\d{8,9}/ # Same effect
说明:
^ Begin of string
(?=\d{10,11}$) Followed by 10 or 11 digits, followed by the end of the string
(01|02|08) 01, 02 or 08
\d+ The remaining digits
答案 1 :(得分:8)
Rob W的回答是正确的。但我会使用这样一个更简单的表达式:(不需要前瞻)
/^0[128][0-9]{8,9}$/