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
 
 

posted on 2017-06-19 17:47  世界之大追梦者  阅读(181)  评论(0编辑  收藏  举报

导航