简介
正则表达式( Regular Expression )是一个描述字符模式对象,字符模式就是由一系列字符构成的特殊格式字符串,它由普通字符和元字符构成。正则表达式的主要语法就是对各种字符的功能进行描述。
模式匹配符
对于表达式中的元字符,需要进行转义,使其变成原义字符才能正常显示出来。
| 字符 | 额 | 
|---|---|
| \ | 转化为特殊字符 | 
| ^ | 最前 | 
| $ | 最末 | 
| * | 0+ 个 | 
| + | 1+ 个 | 
| ? | 0 或 1 | 
| . | 除换行符外所有单字符 | 
| (x) | 匹配 x 并记录值。匹配字符串能被结果数组中元素 | 
| x|y | 匹配 x 或 y | 
| {n} | n 为正整数,匹配前面的 n 个字符 | 
| {n , } | n 为正整数,匹配至少 n 个 前面的字符 | 
| {n , m} | 这里的 n , m 都是正整数,匹配至少 n 个 最多 m 个 前面的字符 | 
| [xyz] | 支付列表,匹配任意字符,也可以用 - 指出一个范围 | 
| [^xyz] | 字符补集,匹配除了列出的字符 | 
| [\b] | 匹配一个空格 | 
| \b | 匹配单词的分界线 | 
| \B | 匹配单词的非分界线 | 
| \cX | X 是一个控制字符,匹配一个字符串的控制字符 | 
| \d | 匹配一个数字 | 
| \D | 匹配一个非数字 | 
| \f | 匹配一个表单符 ( 换页符 ) | 
| \n | 匹配一个换行符 | 
| \r | 匹配一个回车符 | 
| \s | 匹配一个单个 while 空格符,包括空格、 tab 、 form feed 、换行符 | 
| \S | 匹配一个制表符 | 
| \v | 匹配一个顶头制表符 | 
| \t | 匹配一个制表符 | 
| \w | 匹配所有的数字和字母以及下划线 | 
| \W | 匹配除了数字、字母以及下划线以外的其它字符 | 
| \n | 此处 n 是一个正整数,匹配一个正则表达式的最后一个字符串的 n 的值(计数左圆括号) | 
| \ooctal | 这里的 \ooctal 是一个八进制的 escape 值,而 \xhex 是一个十六进制的 escape 值,允许在一个正则表达式中嵌入 ASCII 码 | 
| \xhex | 这里的 \ooctal 是一个八进制的 escape 值,而 \xhex 是一个十六进制的 escape 值,允许在一个正则表达式中嵌入 ASCII 码 | 
特殊字符转义
表达式中用到的一些元字符不再表示原来的字面意义,如果要匹配这些有特殊意义的元字符,必须使用 " \ " 将这些字符转义为原义字符。需要进行转义的字符有 " $ " 、 " ( " 、 " ) " 、 " * " 、 " + " 、 " . " 、 " [ " 、 " ] " 、 " ? " 、 " \ " 、 " / " 、 " ^ " 、 " 、 " 、 " | " 。
" \ " 的作用是将下一字符标记为特殊字符、原义字符、反向引用或八进制转义符,所以,要匹配字面意义的 " \ " ,需要使用 " \ " 表示。
const _ = {
  Require: /.+/, // 是否为空
  Email: /^\w+([-+.]\w+)_@\w+([-.]\w+)_\.\w+([-.]\w+)_$/, // Email
  Phone:
    /^(?:(\(?:\d{2,3}\))|(\d{3}-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6-7}(-\d{1,4})?$/,
  // 电话号码
  Mobile: /^(?:(?:\(\d{2,3}\))|(?:\d{3}-))?13\d{9}$/, // 手机号码
  Url: /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[/=?%\-&_~`@[\]':+!]_([^<>""])\*$/,
  // 使用 HTTP 协议的网址
  IdCard: 'this.IsIdCard(value)',
  Currency: /^\d+(\.\d+)?$/, // 货币
  Number: /^\d+$/, //    数字
  Zip: /^[1-9]\d{5}$/, // 邮政编码
  QQ: /^[1-9]\d{4,12}$/, // QQ 号码
  Integer: /^[-+]?\d+$/, // 整数
  Double: /^[-+]?\d+(\.\d+)?$/, // 实数
  English: /^[A-Za-z]+$/, // 英文
};