我有一个正则表达式的问题,以检查(法国)电话号码是否正确.电话号码必须以1开始,0继续1或2或3或4或5或9,并继续8个号码,但这些号码不能与00000000或11111111相同...
我目前的正则表达式:
/^0(1|2|3|4|5|9){1,1}[0-9]{8,8}/i
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助.
您可以使用以下正则表达式:
/^0[1-59](?!(\d)\1{7}$)\d{8}$/i
Run Code Online (Sandbox Code Playgroud)
一些要点:
{1,1} 被删除就好了.{8,8}和...一样好{8}.(1|2|3|4..) 可以用字符类替换 - [1234][12345] 可以用字符类中的范围替换 - [1-5]上面的正则表达式使用负前瞻断言 - (?!(\d)\1{7})断言前2后的8位数不完全相同.如果断言为真,则它匹配接下来的8位数.
(\d) 捕获第1组中的第一个数字\1反向引用捕获的组以匹配匹配的相同数字\d{7}匹配反向引用7次.这意味着 - (\d)\1{7}匹配相同的数字8次.| 归档时间: |
|
| 查看次数: |
430 次 |
| 最近记录: |