Javascript 正则表达式:用 f($1) 替换 $1
我有一个正则表达式,例如 /url.com\/([A-Za-z]+)\.html/
,我想将其替换为 新字符串 $1: f($1)
,即带有两个插值的常量字符串、捕获的字符串和捕获的字符串的函数。
在 JavaScript 中执行此操作的最佳方法是什么?这里的“最佳”意味着(1)最不容易出错,(2)在空间和速度方面最有效,以及(3)最惯用的 JavaScript 的组合,特别强调#3。
I have a regular expression, say /url.com\/([A-Za-z]+)\.html/
, and I would like to replace it with new string $1: f($1)
, that is, with a constant string with two interpolations, the captured string and a function of the captured string.
What's the best way to do this in JavaScript? 'Best' here means some combination of (1) least error-prone, (2) most efficient in terms of space and speed, and (3) most idiomatically appropriate for JavaScript, with a particular emphasis on #3.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
replace
方法可以将函数作为替换参数。例如:
The
replace
method can take a function as the replacement parameter.For example:
使用
String.replace
时,您可以提供回调函数 作为替换参数而不是字符串,并创建您自己的、非常自定义的返回值。When using
String.replace
, you can supply a callback function as the replacement parameter instead of a string and create your own, very custom return value..replace()
采用函数用于替换,如下所示:您可以根据需要转换结果,只需返回您希望在该回调中匹配的内容即可。 您可以在此处进行测试。
.replace()
takes a function for the replace, like this:You can transform the result however you want, just return whatever you want the match to be in that callback. You can test it out here.