什么是 RegExp?
RegExp 是正则表达式(Regular expression)的缩写,作用是对字符串执行模式匹配。
通常用于数据校验、格式验证、正则替换、查找子串等;
RegExp 语法:
1.var reg = new RegExp(pattern [, flags]);
2.var reg = /pattern/flags;
参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。
参数 [, flags] 是一个可选的字符串,包含属性 “g”(global )、”i” (ignoreCase)和 “m”(multiline)。
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
i 执行对大小写不敏感的匹配
m 执行多行匹配
字符集:
[ ] 任意匹配(匹配任意一个)
[0-9] 查找任何从 0 至 9 的数字
[a-z] 查找任何从小写 a 到小写 z 的字符
[A-Z] 查找任何从小写 a 到小写 z 的字符
[^0-9] 查找任何不在方括号之间的数字
[^a-zA-Z] 查找任何不在方括号之间的字符
元字符:
元字符(Metacharacter)是拥有特殊含义的字符:
\d 查找数字 [0-9]
\w 查找字母和数字 [0-9 a-z A-Z]
\s 查找空格、换行、缩进
\D 查找非数字 [^0-9]
\W 查找非数字和字母 [^0-9 a-z A-Z]
\S 查找非空格、换行、缩进
量词(次数):
? 零或者一次
* 零或者多次
+ 至少出现一次
{m} m次
{m,n} 至少m次,至少n次
{m,} 至少m次
$ 以…结尾
^ …以…开头
RegExp 对象方法
test()
test() 方法检索字符串中是否存在指定的值。返回值是 true 或 false。
var patt1 = new RegExp('e');
console.log(patt1.test('some text'));//true
var patt2 = new RegExp('ee');
console.log(patt2.test('some text'));//false
search 检索与正则表达式相匹配的值
var str='hello world Long';
var index=str.search(/l/i);
console.log(index);//2
match 找到一个或多个正则表达式的匹配 (返回值:满足规则的数组)
var str='hello world Long';
var arr=str.match(/l/gi);
console.log(arr);//(4) ["l", "l", "l", "L"]
replace 替换与正则表达式匹配的子串
var str='hello world Long';
var arr=str.replace(/l/gi,'*');
console.log(arr);//he**o wor*d *ong