一, 两种写法
区别:大部分时候都用简写。当正则内容需要传参的时候就要用new的方式。
var re = /a/;
var re = new RegExp('a')
var foo = 'a'
var re = /foo/; //简写不能这样使用变量进行操作
var re = new RegExp(foo) //这里可以传参
二,相关方法
1.test()方法 。
写法 -> 正则.test(字符串),正则去字符串中进行规则匹配 ,如果匹配成功返回true ,如果匹配失败返回false
var str = 'hello' ;
var re = /el/ ; //可以指定多位进行匹配
console.log( re.test(str) );
var str = '7564323';
var re = /T/;
if( re.test(str) ){
console.log('有非数字的字符')
}else{
console.log('全是数字的字符')
}
2.如何用正则去判断一类字符
\n : 转义字符 , 换行
\s :空格
\S : 非空格
\d :数字
\D : 非数字
\w : 字符(字母, 数字 ,下划线)
\W :非字符
var str = '6543fdfd453';
var re = /\D/;
if( re.test( str ) ){
console.log('有非数字的字符')
}
3.search()方法
字符串.search(正则) , 正则去字符串中进行规制匹配, 匹配成功会返回匹配到的位置,匹配失败会返回 -1 。
var str = 'hello' ;
var re = /e/;
console.log( str.search(re) ) //1
正则默认是区分大小写的
如何不区分大小写 : 正则的修饰符
i 修饰符 , 让正则不区分大小写
var str = 'hello' ;
var re = /E/i;
console.log( str.search(re) ) //1
var re = new RegExp('E' ,i ); //修饰符写在第二个参数
4.match()方法
字符串.match(正则)
正则去字符串里进行规则匹配 , 返回匹配成功的字符的数组, 匹配失败会返回null
正则默认是匹配成功之后就不再继续向后匹配 。
修饰符 g : 全局匹配 (从头匹配到尾)
var str = 'fgsdae425 ' ;
var re = /\d/g;
console.log( str.match(re) ) // ['1' ....]
如何让匹配的字符位数可变 :量词 实现的
- 最少匹配一位 >=1
var re = /\d+/g
?
{}
5.replace 方法
字符串.replace(正则 ,新的字符串 ) ,正则去字符串中进行匹配, 把匹配到的字符替换成新的字符串 。
var str = "abacad";
var re = /a/g;
var res = str.replace(re,'*');
console.log( result )
或 : |
var re = /a|b/g; //a或b
分组: ()
var re = /(a|b|c)d/g;