【发布时间】:2011-07-12 12:51:48
【问题描述】:
replace 函数返回带有替换的新字符串,但如果没有要替换的单词,则返回原始字符串。除了将结果与原始字符串进行比较之外,有没有办法知道它是否真的替换了任何东西?
【问题讨论】:
-
为什么不想比较源字符串和修改后的字符串?
-
这是另一个 O(N) 操作。想象一下,我正在替换 100KB 的字符串。
-
好吧,如果替换发生在字符串的末尾,那么是的。但是无论如何,您的问题没有 O(1) 答案。如果需要,可以使用 match 然后替换,或者进行替换然后比较两个字符串。
-
@Alex - 严格来说,“另一个 O(N)”仍然是 O(N)。
-
在 Javascript 中操作 100kb 的字符串通常是一个非常非常糟糕的主意。
标签: javascript regex replace