正则表达式知识点整理
发布时间:2020-12-14 00:42:22 所属栏目:百科 来源:网络整理
导读:一.创建正则表达式的两种方式 1. 通过构造函数定义:var 变量名 = new RegExp(/表达式/); 2.字面量:var 变量名 = /表达式/; 二.认识正则符号: 注:括号内,前面加个元字符^进行取反,表示匹配不能为括号里面的字符。eg:console.log(/[^abc]/.test(‘a’)
一.创建正则表达式的两种方式1. 通过构造函数定义:var 变量名 = new RegExp(/表达式/);2.字面量:var 变量名 = /表达式/;二.认识正则符号:注:括号内,前面加个元字符^进行取反,表示匹配不能为括号里面的字符。eg:console.log(/[^abc]/.test(‘a’)); 答案是false;
三.元字符
1.基本元字符
eg: var s = '1234567';
var r1 = /(d)(ddd)(dd)(d)/;
r1.exec( s ); // => [ '1234567','1','234','56','7' ]
var r2 = /(d)(?:ddd)(dd)(d)/;
r2.exec( s ); // => [ '1234567','7' ]
四.方法
var data = '1234567';
var p = /d/g;
p.exec(data);//["1"]
p.exec(data);//["2"]
...
p.exec(data);//null
p.exec(data);//["1"]
一般我们通过以下方法实现:
var a = "1234567ni";
var p = /d/g;
var m;
var arr = [];
while((m = p.exec(a)) != null){
arr.push(m);
}
console.log(arr);
(2)正则表达式的贪婪模式:如果一个正则表达式中有多个.+或者.*的结构,那么在匹配的时候就会造成歧义,这时候就满足一个规则,即贪婪模式;在贪婪模式中,从左到右匹配个数的能力是左强右弱,而且是只有两个级别的,要么强,要么弱。 eg: var ddd = "1234567";
"123456" "" "7"
var pp = /(.+)(.*)(.+)/;
pp.exec(ddd) //["1234567","123456","","7"]
2.replace方法的进一步说明: data.replace(/[a]/g,"e");
(2)在替换中也可以使用到组 var data = "2015-1-10";
var pp = /(d+)-(d+)-(d+)/;
data.replace(pp,'$1年$2月$3日');
(3)在替换的时候,第二个参数也可以是一个函数,而函数的参数表示的是匹配到的数组的值,因此前边日期的替换我们可以利用函数的返回值替换匹配到的结果。 var data = "2015-1-10";
var pp = /(d+)-(d+)-(d+)/;
data.replace(pp,function(match,n1,n2,n3){
return n1 + '年' + n2 + '月' + n3 + '月';
})
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |