gpt4 book ai didi

JavaScript:重构循环正则表达式

转载 作者:行者123 更新时间:2023-11-30 10:55:07 25 4
gpt4 key购买 nike

如何改进它,因为它与循环和正则表达式替换有关?

var properties = { ... };
var template = element.innerHTML;

for (var name in properties) {
template = template.replace
(new RegExp('\\${' + name + '}', 'gm'), properties[name]);
}

element.innerHTML = template;

有没有一种方法可以获取 /\$\{\w+\}/gm 的所有匹配项,并在整个操作中仅使用这些匹配项构建一次新字符串?

最佳答案

我同意 JasonHans从性能 Angular 来看,WRT 并不为此烦恼。

但是,我一开始会写得不一样:

element.innerHTML
= template.replace(/[$][{](\w+)[}]/g, function(x,y){return properties[y]||x;})

注意事项

  1. 如果可能,您希望避免在每次迭代时循环创建 RegExp。编译它们通常被认为是昂贵的。或者甚至将其推广到任何对象创建。尽管不会以可读性/可维护性为代价。
  2. 如果您要动态创建 RegExp,请确保结果是 RegExp,否则请参阅 #1,因为您很可能能够应用它。

关于JavaScript:重构循环正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2249334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com