正则表达式

邮箱正则:

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}$";

.点  匹配除" "和" "之外的任何单个字符。要匹配包括" "和" "在内的任何字符,请使用像"[sS]"的模式

(?:pattern) 非获取匹配 匹配但不获取匹配结果,不进行供以后使用 例如“industr(?:y|ies)”就是一个比“industry|industries”更简略的表达式。
(?=pattern) 非获取匹配 正向肯定预查 ,不进行供以后使用 例如“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”

(?!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}$

  1. 扩展部分:
  2. `[A-Z](?<=B)` [A-Z]范围等于B
  3. `[A-Z](?<!B)` [A-Z]范围排除B
  4. `(?!B)[A-Z]` [A-Z]范围排除B

附: js不支持(?<=exp和 (?<!exp语法

最后留下一句至尊提醒:.是万能字符,大家看着用,遇到换行使用[sS]替换.即可。

断言

零宽断言的意思的零宽度的断言

原文地址:https://www.cnblogs.com/wyliunan/p/9708781.html