正则表达式
1.转义符号:‘\’
可以把原来的语法消除掉。
2.\n
换行
3.\t
一个tab键
4.\r
行结束符
5.多行字符串:
(1)用+;
(2)用转义符号\
(3)es6 “··”
正则表达式:
1.创建方式:
(1)new RegExp(pattern, attributes);
new RegExp("",);
当正则表达式用new创建时,表示一个新的对象,当没有new时,只是一个引用。如
var reg = new RegExp("abc",i)
var reg1 = RegExp(reg); //只是对reg的引用。
(2)/pattern/attributes
var reg = /abc/i;
参数
参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。
参数 attributes 是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。
m多行匹配:如
var reg = /^a/gm;
var str = "abcde\na";
reg.match(str); //能匹配两个a
2.作用:
匹配特殊字符或有特殊搭配原则的字符。
3.方括号:
方括号
方括号用于查找某个范围内的字符:(一个区间)
表达式描述
[abc] 查找方括号之间的任何字符。
[^abc] 查找任何不在方括号之间的字符。
[0-9] 查找任何从 0 至 9 的数字。
[a-z] 查找任何从小写 a 到小写 z 的字符。
[A-Z] 查找任何从大写 A 到大写 Z 的字符。
[A-z] 查找任何从大写 A 到小写 z 的字符。
[adgk] 查找给定集合内的任何字符。
[^adgk] 查找给定集合外的任何字符。
(red|blue|green) 查找任何指定的选项。
[abc] 查找方括号之间的任何字符,
[^abc] 查找任何不在方括号之间的字符。(^在方括号里相当于非)
[0-9] 查找0-9之间的数字。
[a-z] 查找任何从小写a到小写z的字符。
[A-Z] 查找任何从大写A到大写Z的字符
[A-z] 查找从大写A到小写z的字符。
[adgk]查找给定集合内的任何字符。
[^abgk]查找给定集合外的任何字符。
(ead|blue|green) 查找任何指定的选项。
元字符(Metacharacter)是拥有特殊含义的字符:
\描述
.查找单个字符,除了换行和行结束符。
\w 查找单词字符。
\W 查找非单词字符。
\d 查找数字。
\D 查找非数字字符。
\s 查找空白字符。
\S 查找非空白字符。
\b 匹配单词边界。
\B 匹配非单词边界。
\0 查找 NUL 字符。
\n 查找换行符。
\f 查找换页符。
\r 查找回车符。
\t 查找制表符。
\v 查找垂直制表符。
\xxx 查找以八进制数 xxx 规定的字符。
\xdd 查找以十六进制数 dd 规定的字符。
\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。
。 === [^\r\n]
\w === [0-9A-z] ; \W === [^\w]
\d ===[0-9]
\s ===[\t\n\r\v\f ]
空白字符可以是:
空格符 (space character)
制表符 (tab character)
回车符 (carriage return character)
换行符 (new line character)
垂直换行符 (vertical tab character)
换页符 (form feed character)
\b === 单词边界(即一个字符不在行头,与上一个字母有间隔。)
RegExp 对象方法
compile 编译正则表达式。
exec 检索字符串中指定的值。返回找到的值,并确定其位置。
test 检索字符串中指定的值。返回 true 或 false。
支持正则表达式的 String 对象的方法
search 检索与正则表达式相匹配的值。
match 找到一个或多个正则表达式的匹配。
replace 替换与正则表达式匹配的子串。
split 把字符串分割为字符串数组。
\s*:匹配0个或多个空格,会尽可能多的匹配
\s*?:匹配最小数量的空格,也就是0个空格