跳到主要内容

简介

正则表达式( 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匹配单词的非分界线
\cXX 是一个控制字符,匹配一个字符串的控制字符
\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]+$/, // 英文
};