正则

依然范特西╮ 提交于 2019-11-29 11:20:58

(1)RegExp.$n获取匹配规则的第n个子表达式
var reg=/\{\{(.+)\}\}/;--vue
if(reg.test('{{name}}')){
    console.log(RegExp.$1);//name
}

(2)replace:不改变原字符

var str='hello world';
var n=str.search('lo');// n是3  普通
var n1=str.search(/l/g);//n1是2  全局查找l 正则
//replace
var str1=str.replace('world','cy');//str1是hello cy
var str3=str.replace(/o/g,'q');//正则;g全局  hellq wqrld
'{{正则}}'.replace(/\{\{(.+)\}\}/,function(a,b){
    console.log(a,b);//{{正则}}  正则 参数1表示匹配成功的字符,参数2代表()里匹配到了:
});
'abcd'.replace(/a(b)(c)/,function (a,b,c) {
    console.log(a,b,c);//abc b c
});

(3)单个字符
[a,b,c]中任意一个,如a,不能是ab;
[^abc]不是abc任意一个;
[a-zA-Z]字母中一个;
[0-9]单个数字;等价于\d;
[^0-9]非单个数字;等价于\D;大写和^都是非的意思;
.单个字符,..两个字符,一个点代表一个字符;
\s一个空格,同理\S表示一个非空格;
\w字母数字下划线;等价于[a-zA-Z0-9_];

(4)数量描述(多个字符)
?        0或一次
*         任意个
+        除了0个:一次或多次
{n}     正好出现n次
{n,m} 出现n-m次
{n,}    出现n次或n次以上;n必须>=2

(5)边界^开始,$结束,()整体,|或者;
(6)

var reg=/^a(b)*/;
if(reg.test('abcd')){
    console.log(1,RegExp.$1);//1 'b'$1 代表第一个()同理类推
}else{
    console.log('false')
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!