Nodejs正则表达式函数之match、test、exec、search、split、repl
1.Match函数 使用指定的正则表达式函数对字符串惊醒查找,并以数组形式返回符合要求的字符串 原型:stringObj.match(regExp) 参数:
返回值:如果没有使用g(全局匹配)选项,则返回第一个匹配的字符串、该字符串所在位置及原始字符串组成的数组,如果使用g选项,则返回所有匹配的字符串组成的数组 示例1: varstr=“aaabbbcccaaabbbccc”; varres=str.match(/aaa/);//没有使用g选项 console.log(res);//输出['aaa',index:0,input:'aaabbbcccaaabbbccc']第一个表示匹配的字符串;第二个表示匹配的字符串坐在的索引位置,从0开始计算;第三个表示原始字符串; 示例2: varstr=“aaabbbcccaaabbbccc”; varres=str.match(/aaa/g);//使用g选项,全局匹配 console.log(res);//输出['aaa','aaa']所有匹配的字符串组成的数组 2.exec函数 使用指定的正则表达式模式去字符串中查找匹配项,并以数组形式返回,如果未查找到则返回null 原型:regExp.exec(stringObj) 参数:
返回值:无论有无g选项,都返回第一个匹配的字符串、该字符串所在位置及原始字符串组成的数组,但是该方法可以返回子匹配项,是match所不能及的 示例1: varstr=“aaabbbcccaaabbbccc”; varregExp=/aaa/;//未使用g选项 varres=regExp.exec(str); console.log(res);//输出['aaa',input:'aaabbbcccaaabbbccc'] 示例2: varstr=“aaabbbcccaaabbbccc”; varregExp=/aaa/g;//使用g选项 varres=regExp.exec(str); console.log(res);//输出['aaa',input:'aaabbbcccaaabbbccc'] 示例3: varstr=“aaabbbccc1234aaabbbccc”; varregExp=/ccc([0-9]+)aaa/; varres=regExp.exec(str); console.log(res);//输出['ccc1234aaa','1234',index:6,input:'aaabbbccc1234aaabbbccc']第一个表示整个正则表达式所匹配的内容;第二个表示()内容的子表达式所匹配的内容;第三个和第四个同上 示例4: varstr=“aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc”; varreg=/ccc([0-9]+)aaa/; varres=reg.exec(str); console.log(res);//输出同示例三,因为exec只返回第一个匹配的字符串,如果想全部返回,则需要借助while循环和g参数来实现,如下 varstr=“aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc”; varreg=/ccc([0-9]+)aaa/g; while(res=reg.exec(str)){ console.log(res); } //输出如下: ['ccc1234aaa',input:'aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc']['ccc5678aaa','5678',index:28,input:'aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc'] //使用这个方法时切记加上g选项,否则while循环将无法跳出,每次都循环第一个匹配项,导致死循环,可能卡死! 3.test函数 原型:regExp.test(str) 参数:regExp表示正则表达式模式stringObj表示需要进行匹配的字符串 返回值:布尔类型,匹配则返回true,否则false 示例1: varstr=“aaabbbcccaaabbbccc”; varreg=/[a-z]+/; varres=reg.test(str); console.log(res);//输出true 示例2: varstr=“aaabbbcccaaabbbccc”; varreg=/[0-9]+/; varres=reg.test(str); console.log(res);//输出false //该函数一般用来检测某字符串是否符合指定的规则 4.search函数 原型:stringObj.search(regExp) 返回值:返回第一个匹配的字符串所在的位置(偏移量),从0开始 示例1: varstr=“aaabbbcccaaabbbccc”; varreg=/ccc/; varres=str.search(reg); console.log(res);//输出6 5.replace函数 原型:stringObj.replace(regExp,replaceText) 参数:regExp表示正则表达式模式,stringObj表示需要进行匹配的字符串,replaceText表示替换成该文本内容,replaceText也可以是返回字符串的一个函数 返回值:返回替换之后的字符串 示例1: varstr=“aaabbbcccaaabbbccc”; varreg=/aaa/; varres=str.replace(reg,’111′); console.log(res);//返回111bbbcccaaabbbccc,只替换第一个匹配项,若需要替换所有则需要使用g选项 5.split函数 原型:stringObj.split([separator[,limit]]) 参数:separator表示分隔符(此处也可以是正则表达式),stringObj表示需要进行匹配的字符串,limit用来限制返回数组元素的个数 返回值:返回分割后的数组 示例1: varstr=“aaa,bbb,ccc”; varreg=/,/; varres=str.split(reg); console.log(res);//输出['aaa','bbb','ccc'] //其实这里可以简单的写为varres=str.split(“,”); 示例2: varstr=“aaa,bbb:ccc@ddd#eee”; varreg=/[,:@#]/; varres=str.split(reg); console.log(res);//输出['aaa','ccc','ddd','eee']这才是用正则的强大之处 示例3. varstr=“aaa,:@#]/; varres=str.split(reg,3); console.log(res);//输出['aaa','ccc'] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |