regex - 带破折号的正则表达式 13 位电话号码
问题描述
我有一个需要处理电话号码验证的应用程序。电话号码必须包含 13 个字符(数字和破折号的总和)。必须至少有 1 个破折号,最多 3 个破折号。起始字符必须是数字。如何为此验证创建正则表达式?这是我的正则表达式字符串。/^(?:[0-9]-*){13}$/
它并不完全符合我的预期
解决方案
所以总共 13 个字符,最多 3 个破折号,最少 1 个表示 10 位数字,对吗?因此您的字符范围是11-13?
如果是这样,请尝试:
^(?=(?:\d-?){10}$)\d+(?:-\d+){1,3}
查看在线演示
^
- 开始线锚。(?=
- 打开积极的前瞻:(?:
- 打开一个非捕获组:\d-?
- 匹配一个数字和可选的连字符。){10}$)
- 关闭非捕获组,并在尾弦锚点前匹配十次。然后关闭前瞻。
\d+
- 1+ 位数。(?:
- 打开第二个非捕获组:-\d+
- 匹配连字符和 1 个以上的数字。){1,3}
- 关闭非捕获组并匹配1-3次。
推荐阅读
- c# - 以动态方式在字符串中删除和添加逗号
- python - 什么是添加负乘法作为关键字参数的 Pythonic 方法
- python - GridSearchCV:XGBRegressor 中的参数错误
- r - 在 R Studio 中创建我的交易图
- swift - 在 FireBase 登录过程后导航到主屏幕(内容视图)。(斯威夫特用户界面)
- python - 在 Google Colab 中挂载 Google Drive 时的路径问题
- javascript - Next.js DOMPurify.sanitize() 显示 TypeError: dompurify__WEBPACK_IMPORTED_MODULE_6___default.a.sanitize is not a function
- r - 使用 ifelse() 的 R 语法有什么问题?
- ios - xcode MKMapView 确实失败并出现错误:Error Domain=kCLErrorDomain Code=1 "(null)"
- python - 如何查找列表中所有产品的不同组合的总和(python)