正则表达式
<!--
g:表示全局
i:表示不区分大小写
m:表示多行
d:表示数字
D:表示非数字
s:表示空格
S:表示非空格
w:表示字符
W:表示非字符
-->
(1):正则表达式的创建
let t = new RegExp('cat' , g) ;
let t = /cat/g ;
(2):正则表达式中的方法
1):test() ---- 正则.test(字符串)
<!--
正则去匹配字符串,匹配成功返回真,匹配失败返回假
-->
let t = /cat/g ;
let str = 'catStr' ;
console.log(t.test(str)) ; true
2):search() --- 字符串.search(正则)
<!--
正则去匹配字符串,匹配成功返回字符串的位置,
匹配失败返回-1
-->
let t = /cat/g ;
let str = 'catStr' ;
console.log(str.search(t)); 0
3):match() --- 字符串.match(str) ;
<!--
正则去匹配字符串,匹配成功返回数组,
匹配失败返回null
-->
let t = /t/g ;
let str = 'catStr' ;
console.log(str.match(t)); ['t','t']
4):replace() --- 字符串.replace(正则 , 新字符串/回调函数)
<!--
正则去匹配字符串,匹配成功的字符替换原字符
-->
<!--
回调函数
function(sub,child1,child2){
sub:匹配成功的字符串
child1:第一次匹配的字符串
child2:第二次匹配的字符串(没有则显示child1的位置)
}
-->
let str = 'hhaa2ha' ;
let reg = /h/g;
str = str.replace(reg , '**') ;
console.log(str); ****aa2**a
-------------------------------
let str = '2018.7.1' ;
let reg = /(\d+)(\.)/g;
str = str.replace(reg , function (sub,chidl1,child2) {
console.log(sub,chidl1,child2);
<!--
sub:2018. 7.
child1:2018 7
child2: .
-->
}) ;
(3):正则表达式中的默认行为
1):区分大小写(/reg/i; 不区分大小写)
2):量词{min[,max]}
<!--
最少出现min次
最多出现max次
+ 相当于{1,} 至少出现1次
? 相当于{0,1} 出现0次或者1次
* 相当于{0,} 至少出现0次
-->
3):|(或的意思)
let reg = /a|b/g ;
<!--匹配字符a或者b-->
4):() 匹配子项(分组操作)
5):字符类:一组相似的元素
<!--
[a-z0-9A-Z] : a-z,0-9和A-Z
-->
6):^(排除)
<!--
^放在最前面表示开始
$放在最后面表示结束
-->
(4):几种常见正则的匹配
<!--邮箱-->
let reg = /^[a-z1-9A-Z]+@[a-z1-9]+(\.)[a-zA-Z]{2,4}$/;
<!--手机号码-->
let reg = /^1[0-9]{10}$/;
<!--检验首尾空格-->
let reg = /^\s+|\s$/;
正则表达式
最新推荐文章于 2024-10-08 15:02:33 发布