0

我正在尝试编写一些代码高尔夫,其中我使用了javascript的正则表达式.replace()方法,并且作为第二个参数,我传递了一个匿名函数.replace(/(exp)/,function(x){return x.toUpperCase();}),据我所知,如果您使用匹配的子,则需要这样做字符串来确定要替换的内容。

至少这就是我从这里所理解的。

有没有更短的方法来做到这一点?具体消除function(x){return;}

我看到这段代码有一个没有函数调用的替换.replace(/([\[\]])/g, '\\$1');

4

1 回答 1

-1

从技术上讲,您可以通过将函数分配给变量来简化代码:

<script>
var u = function(x) {
    return x.toUpperCase();   
}
</script>

然后使用变量而不是匿名函数:

str.replace(/(exp)/, u);

但它移动代码而不是消除它。尽管如此,它还是达到了所需的简洁性。

JSFiddle

于 2013-10-09T15:41:31.843 回答