正则表达式:规则表达式
字符串的一种匹配模式 ,通过某种规则来查找对应的字符串的值;
- 1、字面量的创建
//var reg = /要匹配的字符/;
// test : 是用于检测字符是否符合正则的规则 ,如果如何就返还true 否则就返还false;正则方法
var str = "qeqreqwrfdsafdb";
var reg = /eq/;
var res = reg.test(str);
console.log(res);
- 2.通过内置构造函数
var str = "fdafdjl";
var reg = new RegExp("a"); //需要加引号
console.log( reg.test(str));
- 3.正则表达式的类型 ; 是一个复杂的数据类型 ;
元字符 :在正则里有特殊含义的字符
1. "." : 可以匹配所有非换行的字符
2.转义字符 \
3.匹配空格 \s
4.匹配非空格 \S
5.匹配数字 \d
6.匹配非数字 \D
7 匹配: 数字 字母 下划线 \w
8 匹配 非 数字 字母 下划线 \W
限定符 : 限制 匹配字符出现的次数
1.* 字符可以出现 0次到多次
2. ? 出现 0次或者1次
3. + 字符出现1次到多次
4. 出现指定的次数 {n};
5. 指定 n次到m次
6.指定 n次 到 多次之间 {n,}
边界符
1.以什么字符作为开头 ^
2.以什么作为结尾 $
3.以什么作为边界\b 边界符 : 边界定义(\W:非数字 字母 下划线的内容);
特殊符号
1.分组 ();
console.log( RegExp.$1); // 可以获取符合匹配规则的第一个分组()里匹配到的内容
console.log( RegExp.$2); // 可以获取符合匹配规则的第二个分组()里匹配到的内容
2.集合 []; 代表一个字符
- 1.集合里 自带或者关系 ,在正则里的或者是 "|"
- 2.集合里的 ^ 非的意思
- 3.集合里的 “-” 从哪里到哪里 [a-z] [A-Z] [0-9]
3.修饰符
- g 全局匹配
- i 忽略大小写
和正则相关的方法
正则方法
1.test 正则方法 2.exec 捕获 g 是全局匹配的修饰符
字符串方法 : 字符串下面的方法
- match : 获取符合正则规则的内容 (全局和非全局匹配有区别 )
- replace : 替换符合规则的字符
var str = "abcchinaedfdsasexfsab";
// var reg = /\d+/g;
var reg = /(china)|(sex)/g;
var res = str.replace(reg,function(arg){
console.log(arg);
var str = "";
for(var i=0;i<arg.length;i++){
str += "*"
}
return str;//回调replace
})
console.log(res);//*****edfdsa***fsab
3.search : 会返还符合正则规则的索引值,如果没有符合条件的就返还-1 4.split:根据指定字符 把字符串切割成数组
var str = "fdsaf123fdaf2342fdas2342fdad";
var reg = /\d+/;
var arr = str.split(reg);
console.log(arr);//(4) ["fdsaf", "fdaf", "fdas", "fdad"]