计算机语言中的转义字符
回车换行
横向跳到下一制表位置
v 竖向跳格 垂直制表符 == x0B
退格
回车
f 走纸换页
u 使用数字指定的Unicode 字符,如u2000
x使用十六进制数指定的Unicode 字符,如xc8
正则表达式语法
字符类
[...]
匹配方括号中字符序列中的任意一个字符。其中可以使用连字符“-”匹配指定范围内的字符
例如:/[012]/可以与0A2B3C中的字符0.1.2匹配
[^...]
匹配方括号字符序列中未包含的任意字符。与[...]相反
.
匹配除了换行和回车以外的任意字符相当于[^ ]
d
匹配任意一个的数字字符,相当于[0-9]
D
匹配任意一个非数字字符,相当于[^0-9]
s
匹配任意空白字符,如空格,制表符,换行符等。相当于[ x0Bf ]
S
匹配任意非空白字符,相当于[^ x0Bf ]
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
匹配单词的边界
例如:/e/与I love seek中love的e匹配但和seek中的e不匹配。
B
匹配单词的非边界
例如:/eB/与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"