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

    xiaoxiao2021-04-18  63

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

    最新回复(0)