更好的方法来替换文本 - 性能

时间:2011-06-26 01:55:13

标签: javascript jquery performance

是否有更好的更高效的方法来替换文本然后使用下面的正则表达式代码,特别是如果文本很大并且不断被不同的用户访问。我知道性能提升可以忽略不计,但我想知道是否有更好的方法来做到这一点。这就是我用foonew替换foo的方法

str.replace(/foo/gi, 'foonew')

更新:在进行单词替换之前,将文本数据从数据库检索到textarea持有者。然后我访问textarea值,替换单词,然后将更新的文本附加到正文

2 个答案:

答案 0 :(得分:1)

好吧,patric dw的评论可能是正确答案。但是我们假设为了论证你真的必须在一些更大的字符串中替换一个随机子字符串,并且没有简单的技巧可以避免它。这有三种可能性:

  1. 如果要用较小长度的字符串替换字符串,则可以将字符向右移动以构成差异。这样可以避免重新分配字符串。

  2. 如果更换尺寸相同,您可以在不复制的情况下进行更换。

  3. 最后,如果它更大,你可以懒惰地进行字符串替换。只需存储一个对象,其中包含您要替换的字符串以及已替换的段的开头/结尾。这样就可以避免复制。当然,这比手工更换字符串要复杂得多,所以除非性能考虑真的很糟糕,否则我可能会避免使用它。

答案 1 :(得分:0)

  

在进行单词替换之前,将文本数据从数据库检索到textarea holder。然后我访问textarea值,替换单词,然后将更新的文本附加到正文。

最有效(也是最安全)的方法是在发送数据之前替换服务器端的字样。

然后你的JS(用户可以修改!)除了显示信息外什么都不做。

根据流量/数量的不同,甚至可能需要支付存储在数据库中的文本的清理版本。