正则表达式
1.是什么
是对字符串操作的一种逻辑符;
2.组成
基本字符:abc 123
特殊字符 :\d 、\w 、\s等
3.作用
实现匹配
提取
替换
4.特殊字符
1.元符
\d表示所有的数字
\D表示所有的非数字
\w表示字母数字和下划线组成
\W有所有的非字母数字和下划线
\s表示所有的空白字符
\S表示所有的非空白字符
.表示除换行外的所有字符
^表示开头;
$表示结尾;
2.表示重复的次数
*表示零次或多次重复
+表示一次或多次重复
?表示零次或一次重复
{n}表示重复n次
{n,}表示至少重复一次
{n,m}表示重复n-m次;
3.其他
[ ]表示或;里面的字符是单个的
[^]表示取反
()表示可以把它当作一个整体,可以分组
\表示转义
|表示或者
[\u4e00-\u9fa5] 匹配汉字
5.在js中的应用
1.创建方式
1.通过构造函数创建
var regularExpression = RegExp('\\d','p');
2.通过字面量创建
var regularExpression = /\d/pi;
参数 p 是全局作用域下,i是否大小写
2.具体作用
1.regexp的方法:
提取的方法exec();
匹配的方法 text();
2.字符串的方法
match 提取字符串
replace 替换
split 分割字符串
search 查找;
匹配:
匹配日期案例
var str = '1998-09-03';
var reg = /^\d{4}-\d{1,2}-\d{1,2}$/;
console.log(reg.test(str));
提取:
提取工资案例
//用string方法可以提取全部
var str = '小李 :10000, 小刘 : 20000, 小于 : 1000';
var arr = str.match(/\d+/g);
console.log(arr);
//reg方法只能提取第一个数字
var str = '小李 :10000, 小刘 : 20000, 小于 : 1000';
var reg = /\d+/g;
console.log(reg.exec(str));
//提取字符串中的某一部分
str方法
var str = '123@qq.com';
console.log(str.split(/@|./));
reg方法
var str = '123@qq.com';
var reg = /(\w+)@(\w+)(.\w+){1,2}/;
reg.test(str);
console.log(RegExp.$1);
console.log(RegExp.$2);
console.log(RegExp.$3);
替换
replace
//把所有的空格转换成去掉
var str = ' 123AD asadf asadfasf adf ';
console.log(str.replace(/\s/g,''));
search
//只能找第一个bc
var str = '1 BC abc BC ,efg,123,abc,123,a';
console.log(str.search(/bc/gi));