javascript - 电话号码的 Javascript 正则表达式
问题描述
我完成了这项工作并编写了以下正则表达式:
/^([0-9.]+)$/
这满足以下条件:
123.123.123.132
123123213123
现在我需要为这个正则表达式添加一个功能,它可以在电话号码中有一个字母,比如
123.a123.b123.123
但不是
123.aa1.bb12
我试过了
/^([0-9.]+\w{1})$/
.(点)符号之间只能包含一个字母。有人可以帮我解决这个问题吗!!!
提前致谢 !!
解决方案
您使用的模式^([0-9.]+)$
使用一个字符类,它将匹配任何列出的字符并重复 1 次以上,例如123.123.123.132
.
这有点广泛匹配,没有考虑匹配字符的位置。
如果您的值以 1+ 位数字开头,并且可选的 az 可以在点之后,您可以使用:
^\d+(?:\.[a-zA-Z]?\d+)*$
解释
^
字符串的开始\d+
匹配 1+ 个数字(?:
非捕获组\.[a-zA-Z]?\d+
匹配一个点,后跟可选的 a-zA-Z 和 1+ 个数字
)*
关闭组并重复 0+ 次$
字符串的结尾
推荐阅读
- c# - 午夜过后如何获取两个时间跨度之间的时差?
- regex - 将带版本号的文件重命名为不带版本号的文件
- linux - 在 Linux 上指定 odbc 驱动程序管理器
- sql-server - 在 Access 查询中定义参数的目的
- c++ - 静态类成员不是与this指针没有关联吗?
- maven - 从 pom 中排除测试文件夹不起作用
- android - Android 或 iOS 支持修改屏幕上的文字?
- c - 程序在等待退出时超时
- javascript - 在 vuejs 中放置一个事件处理程序?
- javascript - js 文件没有正确导入 js 模块,即使在 html 中插入了 type="module"