某百科中看到一个例子,要用正则表达式将函数foo(a,b,c)中的参数位置换为foo(b,a,c),正好又在复习JS的过程中看到了正则表达式的部分,于是考虑用JS来实现这个功能。 函数的参数同例题中一样通过 [^,]* 进行匹配,于是写出正则式:
/foo
\((
[^,
]*),(
[^,
]*),(
[^,
]*)
\)/
来匹配三个参数。然后接着是参数的替换。 最开始用的是match函数,得到group的值再挨个替换:
<script>
var patt1=/foo\(([^,]*),([^,]*),([^,]*)\)/;
var group=new String("foo( bar(8), x+y+z, 5)").match(patt1);
document.write("foo("+group[2]+","+group[1]+","+group[3]+")");
</script>
觉得太麻烦,于是找了一下资料,果然可以用更方便的replace函数实现:
<script>
var patt1=/foo\(([^,]*),([^,]*),([^,]*)\)/;
document.write(new String("foo( bar(8), x+y+z, 5)").replace(patt1,"foo($2,$1,$3)"));
</script>
转载请注明原文地址: https://ju.6miu.com/read-675242.html