JS正则表达式的简单用法
一、正则表达式的定义
js中定义表达式很简单,有两种方式,一种是通过构造函数,一种是通过//,也就是两个斜杠。
例如:
var a ="123+abc=ads\\"; var p1= /\d{3}\+\w{3}=\w{3}\\/;//表达式的方式,也就是//,双斜杠 if(p1.test(a)){ console.log("true"); }else{ console.log("false"); } var p2 =new RegExp("\\d{3}\\+\\w{3}=\\w{3}\\\\");//构造函数的方式,参数:字符串 if(p2.test(a)){ console.log("true"); }else{ console.log("false"); } var p3 =new RegExp(/\d{3}\+\w{3}=\w{3}\\/);//构造函数的方式,参数:正则表达式 if(p3.test(a)){ console.log("true"); }else{ console.log("false"); }
使用构造函数定义正则表达式,注意大小写,否则不起作用。由于构造函数的参数是一个字符串,也可以是两个斜杠的方式定义,遇到一些特殊字符就需要使用“\”进行转义。但通过构造函数需要更多的转义字符“\”。
二、正则表达式的验证
正则表达式的方式(参数为字符串)有两个:exec和test
字符串的方式有很多(参数为正则表达式),比如:match
1.test的方式:正则表达式的方法test测试给定的字符串是否满足匹配,返回boolean类型,只有真和假。(部分匹配)
var a ="123qwe"; console.log(/[0-9]/.test(a));
结果:
true
2.exec的方式:正则表达式方法exec测试给定字符串是否匹配,返回匹配到的字符串,如果没有匹配的则返回null
var a ="123qwe"; console.log(/[0-9]{3}/.exec(a)[0]);
结果:
123
3.match字符串的方法,它的参数为正则表达式,返回为匹配到的字符串
var a ="123qwe"; console.log(a.match(/[0-9]{3}/)[0]);
结果:
123
4.replace字符串方法,参数:正则表达式或字符串,返回替换后的字符串
var a ="123qwe"; console.log(a.replace(/[0-9]{3}/,""));
结果:
qwe
5.split字符串方法,参数:正则表达式或字符串,返回分隔后的数组
var a ="rrrr123qwe"; console.log(a.split(/[0-9]{3}/));
结果:
['rrr','qwe']
三、替换所有的匹配值(/表达式/g)
var a ="rwer123qwre"; console.log(a.replace(/r/g,""));
结果:将所有的r全部替换
we123qwe
而
var a ="rwer123qwre"; console.log(a.replace(/r/,""));
结果:只是将第一个替换
wer123qwre
四、.字符串切分匹配替换$
可以在正则表达式中添加()进行字符串切分然后用$+数字表示相应的位置;
如:
例子:将字符串图标大小:242.238281kb,小数点后保留2位小数:由于是字符串并且后面有单位(单位有可能是mb,所以可以利用正则表达式进行位置切分匹配进行替换),
如下:$1,$2,$3分别表示前面对应的()
var str ="242.238281kb"; var res =str.replace(/(\d*).(\d{2})(\d*)([A-Za-z]*)/,"$1.$2$4"); console.log(res);
结果:
242.23kb