JS正则相关的一些函数整理

120 阅读1分钟

正则表达式实例上的方法

1. regExp.test(str)

返回布尔值

2. regExp.exec(str)

返回捕获组

字符串用到的正则

1. str.match(regExp)

正则带g,返回数组或者null ; 不带g,返回捕获组;

注:当不带g的时候,结果同 正则函数的exec()方法。

如下:带g,返回数组:

案例应用:将字符串按照+-分隔符拆分成数组

var str = '1+2+3-444';
var arr = str.match(/(\d+(?:\.\d+)?|[-+\/*()]|\d+)/g)
// arr的值是 ['1', '+', '2', '+', '3', '-', '444']

var result = 0;
var flag = '+';
arr.forEach(item => {
    if( Number(item)){
        if(flag === '+'){
            result = result + Number(item);
            
        } else {
            result = result - Number(item);
        }
    } else {
        flag = item;
        
    }
})

如下:不带g,返回捕获组,捕获组的第一项是匹配中的第一个字符:

2. str.replace(str|regExp, target)

把某个字符串替换成另一个字符串。

3. str.search(str|regExp)

查找某个字符串。返回匹配中的起始索引。