先说说规则
元字符 说明
. 代表单个通配符 代表任意字符
/ 代表转义符
\ 对下一字符取非(通常是普通变特殊,特殊变普通)
*匹配前面的字符或者子表达式0次或多次
*? 惰性匹配上一个
+匹配前一个字符或子表达式一次或多次
+? 惰性匹配上一个
? 匹配前一个字符或子表达式0次或1次重复
^ 匹配字符串的开头
-代表范围省略 如0-9 就是0到9
[ ] 匹配内部的任一字符或子表达式
[^] 对字符集和取非 - 定义一个区间
\d匹配任意数字 等同于[0-9]\d 等同于[0-9]
\D 匹配数字以外的字符 等同于[^0-9]匹配非数字
\w 匹配任意数字字母下划线 等同于[a-z0-9A-Z_]匹配大小写字母、数字和下划线
\W 不匹配数字字母下划线 等同于[^a-z0-9A-Z_]等同于上一条取非
{n}匹配前一个字符或子表达式
{n,} 匹配前一个字符或者子表达式至少n次
{n.} 匹配前一个字符N个或n个以上
{n,}? 前一个的惰性匹配
{m,n} 匹配前一个字符或子表达式至少m次至多n次
\A 匹配字符串开头
$ 匹配字符串结束
[\b] 退格字符
\c 匹配一个控制字符
\t 匹配制表符
/i (忽略大小写)
/g (全文查找出现的所有匹配字符)
/m (多行查找)
/gi(全文查找、忽略大小写)
/ig(全文查找、忽略大小写)
1开头的11位手机号码
^1[0-9]{10}$
只能是 数字或字母或其组合
[0-9a-zA-Z]
只能是 数字或字母或其组合且4-23位
[0-9a-zA-Z]{4,23}
排除全数字
(?!^\d+$)
排除全字母
(?!^[a-zA-Z]+$)
判断是否是 纯空格
^[ ]+$
固话号码验证
^[1-9][0-9]?(.\d)?$//从1开始,匹配2位数字,可以带1位小数
^[1-9][0-9]?//从1开始,匹配2位数字,
表达式: ^(0\d{2,3}-\d{7,8}(-\d{3,5}){0,1})|(((13[0-9])|(15([0-3]|[5-9]))|(18[0,5-9]))\d{8})$
验证能验证:
1:010-12345678 的情况
2:0123-12345678的情况。
3:正常的手机号13号段,15号段。18号段的号码。
4:能在固话后面添加分机号验证。 我当前设置的规则是只验证3到5位的分机号 如:010-12345678-0123 可以通过
原文:https://www.cnblogs.com/marvelousone/p/11300275.html