计算机语言中的转义字符
\n 回车换行
\t 横向跳到下一制表位置
\v 竖向跳格 垂直制表符 == \x0B
\b 退格
\r 回车
\f 走纸换页
\u 使用数字指定的Unicode 字符,如\u2000
\x使用十六进制数指定的Unicode 字符,如\xc8
正则表达式语法
字符类
[...]
匹配方括号中字符序列中的任意一个字符。其中可以使用连字符“-”匹配指定范围内的字符
例如:/[012]/可以与0A2B3C中的字符0.1.2匹配
[^...]
匹配方括号字符序列中未包含的任意字符。与[...]相反
.
匹配除了换行和回车以外的任意字符相当于[^\n\r]
\d
匹配任意一个的数字字符,相当于[0-9]
\D
匹配任意一个非数字字符,相当于[^0-9]
\s
匹配任意空白字符,如空格,制表符,换行符等。相当于[\t\n\x0B\f\r]
\S
匹配任意非空白字符,相当于[^\t\n\x0B\f\r]
\w
匹配任意英文字母,数字字符及下划线,相当于[a-zA-Z0-9_]
*:使用[^...]时候,如果“^"不是出现在"["后边,则仍表示字符"^"的原义。下面介绍"^"的原意义。
使用量词
正则表达式中,使用量词可以控制匹配字符、字符串出现的次数。
?
匹配前一项0次或1次
例如:/JS?/可以匹配JScript中的JS和JavaScript中的J
+
匹配前一项1次或多次,至少出现一次。
*
匹配前一项0次或多次
{n}
匹配前一项恰好n次,其中n为非负整数
{n,}
匹配前一项至少n次
{n,m}
匹配前一项至少n次,但不超过m次。n、m都为非负数。且n<=m
例如:/o{2,5}/可以与book中的两个o,booooooook中的5个连续的o匹配。
使用{n,m}限定符时,数字和","之间不能有空格
指定匹配的位置
^
匹配字符串的行开头,字符"^"必须出项在指定字符串的最前面。
例如:/^g/可以匹配good中的g,但不能匹配bag中的g
$
匹配字符串的行结尾,字符"$"必须出项在指定字符串的最后边
例如:/g$/可以匹配bag中的g,但不能匹配good中的g
\b
匹配单词的边界
例如:/e\b/与I love seek中love的e匹配但和seek中的e不匹配。
\B
匹配单词的非边界
例如:/e\B/与I love seek 中seek的e相匹配,但和love中的e不匹配。
选择匹配符
|
选择匹配符可以匹配所指定的两个选项中的任意一个。
例如:/World|Dream/可以与”One World,One Dream"中的World或者Dream匹配。
分组
分组就是使用括号将多个单独的字符或字符类组合成子表达式,以便可以像处理一个独立的单元那样,应用| * + 或 ? 等来处理它们。例如:正则表达式;/J(ava)?Script/即与字符串“JavaScript”,又与字符串“JScript”相匹配。
创建正则表达式
在JavaScript中,正则表达式由RegExp对象表示。
通过RegExp类的构造方法创建
语法格式:new RegExp(patten[,flags])
pattern:必选参数,用于指定需要匹配的模式字符串
flags:可选参数,用于指定正则表达式的标志信息。
g:全局标志,表示匹配字符串中出现的所有匹配子字符串;
i:忽略大小写标志,,,在执行模式比配的时候不区分大小写。
m:多行标志,如果不设置此标志,那么"^"只匹配字符串的开头,“$”只能匹配字符串的结尾,否则,“^”可以匹配多行字符串中的每一行的开头,“$”可以匹配多行字符串中每一行的结尾。
例如:
var objExp = new RegExp(“\\d”);
var objExp = new RegExp(“\\d”,"g"); //上面的正则表达式只会匹配第一个出现的数字,如果想匹配所有出现的数字必须加一个全局标志g
*:必须在模式字符串“\”前面加上“\”,这是正常的字符串避开规则。
通过正则表达式字面量创建
语法格式:/pattern/[flags]
例如:var objExp = /\d/
var objExp = /\d/g
应用RegExp执行模式匹配
test()方法
语法格式:regExp.test(str)
如果搜索到匹配的字符则返回true,否则返回false;
exec()方法
语法格式:regExp.exec(str)
当没有搜索到匹配的字符时,返回null;
否则返回一个数组,数组的第一个元素是与正则表达式匹配的字符串,其他元素包含的是匹配的各个分组,即:正则表达式中用括号括起来的子表达式匹配的字串。
例如:
var str = "220104190008270343";
var objExp = /\d{6}([12]\d{3})([01]\d)([0123]\d)\d{4}/;
var arr = objExp.exec(str);
则arr数组的值为:
arr[0] : "220104190008270343"
arr[1] : "1900"
arr[2] : "08"
arr[3] : "27"