JS中利用正则表达式交换函数的参数位置

来源:互联网 发布:两少一宽 知乎 编辑:程序博客网 时间:2024/06/06 01:54

某百科中看到一个例子,要用正则表达式将函数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>
0 0
原创粉丝点击