【发布时间】:2013-10-13 21:32:39
【问题描述】:
我正在尝试编写一些代码高尔夫,其中我使用了 javascript 的正则表达式 .replace() 方法,并作为第二个参数传递了一个匿名函数,例如 .replace(/(exp)/,function(x){return x.toUpperCase();}),据我所知,这是它需要的方式如果您使用匹配的子字符串来确定要替换的内容,则完成。
至少我是这么理解的from here。
有没有更短的方法来做到这一点?专门去掉function(x){return和;}?
我看到这段代码有一个没有函数调用 .replace(/([\[\]])/g, '\\$1'); 的替换。
【问题讨论】:
-
您看到的代码只会替换为替换正则表达式模式中匹配的代码。您传递的匿名函数正在将该匹配转换为大写。您可以安全地使用
.replace(/([\[\]])/g, '\\$1')在方括号前添加反斜杠。 -
但是有没有办法在没有匿名函数的情况下做我想做的事?
-
如果没有匿名函数,您不能将函数用于替换。
-
您的问题背后的问题是什么?可读性?
-
@DioF 不,我想看看我能不能让它更短。
标签: javascript regex replace shorthand