javascript中正则表达式反向引用示例介绍,正则表达式示例


最近遇到一个需求,传入一个字符串,每三个字符插入一个空格

例:

传入abcd1234

输出 abc d12 34

思考了一下,准备写一个函数如下
复制代码 代码如下:

function appendSpace(s)
{
var length = s.length;
var result = "";
var last = 0;
for(var i = 3;i<=length;i=i+3,last = last+3)
{
result = result+s.substring(i-3,i)+" ";
}
result = result+s.substring(last,length);
return result;
}

感觉这个函数有点屌丝。。。

于是换了replace()正则表达式替换方法
复制代码 代码如下:

/*
*$1表示引用匹配规则中第一对括号(此处为"(.{3})")命中的文本
*不加括号的时候会直接输出$1
*/
function insertSpace(s)
{
var result =s.replace(/(.{3})/g,"$1 ");
return result;
}

运行效果如图

什是正则表达式的反向引用?其作用是什?

比方我要找两个连在一起的词abcabc,就要用
(abc)\1
\1就是反向引用,\n指同一个正则表达式的第n个捕获
反向引用还在替换的时候有用,比方我要用第一个词替换整句话
this is a test
replace("(\w+).*", "\1")
 

JavaScript正则匹配,反向引用中的数字问题

其实方法很简单
利用一个转义字符'\'就解决了
要使用组1时写成'$1\0'
要使用组10时写成'$10'
因为数字转义后还是这个数字,也不用担心有什么后遗症,只是用来隔开数字
 

评论关闭