邮箱正则:
var regex = /^([0-9A-Za-z\-_\.]+)@([0-9a-z]+\.[a-z]{2,3}(\.[a-z]{2})?)$/g;
* 移动号码段:139、138、137、136、135、134、150、151、152、157、158、159、182、183、187、188、147
* 联通号码段:130、131、132、136、185、186、145
* 电信号码段:133、153、180、189
var regex =
"^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8}$"
;
.点 匹配除"\n"和"\r"之外的任何单个字符。要匹配包括"\n"和"\r"在内的任何字符,请使用像"[\s\S]"的模式
(?:pattern) 非获取匹配 匹配但不获取匹配结果,不进行供以后使用 例如“industr(?:y|ies)”就是一个比“industry|industries”更简略的表达式。(?!pattern) 非获取匹配 正向否定预查 例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”
(?<=pattern) 非获取匹配 反向肯定预查 “(?<=95|98|NT|2000)Windows”能匹配“2000Windows”中的“Windows”
(?<!patte_n) 非获取匹配 反向否定预查
断言
环视:
环视主要有以下4个用法:
(?<=exp) 匹配前面是exp的数据
(?<!exp) 匹配前面不是exp的数据
(?=exp) 匹配后面是exp的数据
(?!exp) 匹配后面不是exp的数据
需求:字母、数字组合,不区分大小写,不能纯数字或者纯字母,6-16个字符。
通用正则:^[a-z0-9]{6,16}$ 字母数字组合,6-16个字符
排除纯字母:(?!^[a-z]+$)
排除纯数字:(?!^[0-9]+$)
组合起来:(?!^[a-z]+$)(?!^[0-9]+$)^[a-z0-9]{6,16}$
需求:字母、数字组合,不区分大小写,不能纯数字或者纯字母,6-16个字符。
通用正则:^[a-z0-9]{6,16}$ 字母数字组合,6-16个字符
排除纯字母:(?!^[a-z]+$)
排除出数字:(?!^[0-9]+$)
组合起来:(?!^[a-z]+$)(?!^[0-9]+$)^[a-z0-9]{6,16}$
- 扩展部分:
- `[A-Z](?<=B)` [A-Z]范围等于B
- `[A-Z](?<!B)` [A-Z]范围排除B
- `(?!B)[A-Z]` [A-Z]范围排除B
附: js不支持(?<=exp) 和 (?<!exp) 语法
最后留下一句至尊提醒:.是万能字符,大家看着用,遇到换行使用[\s\S]替换.即可。
断言
零宽断言的意思的零宽度的断言