javascript - 如何在开头匹配 0 或 + 后跟 1 到 3 位数字,但不能同时匹配两者?
问题描述
我有以下正则表达式来检查手机号码
^(0\d{10,15})$|(?!\1)(\+\d{1,3}\d{10,15})$
字符串应匹配开头的 0,后跟 10 到 15 位数字
或(但不是两者)
+
以 a开头的字符串, 1 到 3 位国家代码,后跟 10 到 15 位数字
第一个条件匹配,但带有 +[country-code] 的数字不匹配
解决方案
另一种变体可能是
^(?:0\d{10,15}|\+\d{11,18})$
^
字符串的开始(?:
非捕获组0\d{10,15}
匹配0
和 10-15 位数字|
或者\+\d{11,18}
匹配+
和 11-18 位数字
)
关闭非捕获组$
字符串结束
推荐阅读
- testng - 未能执行目标 org apache maven 插件 maven-surefire-plugin
- flutter - Flushbar 编译器问题
- javascript - Vue.js 多个模态中的多个过滤器
- python - python - 在pandas groupby中连接字符串
- php - 如何解决我的新日志文件的权限被拒绝
- regex - 前三个和最后一个字符匹配 - 正则表达式反向引用
- python - 无法在表上运行 for 循环
- python - 删除 DF 中的多行
- java - 自动平衡团队规模
- r - #ConfusionMatrix.default 中的错误:数据的级别不能多于参考