如何在JavaScript中执行str_replace,替换JavaScript中的文本?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在JavaScript中执行str_replace,替换JavaScript中的文本?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2109字,纯文字阅读大概需要4分钟。
内容图文
![如何在JavaScript中执行str_replace,替换JavaScript中的文本?](/upload/InfoBanner/zyjiaocheng/711/46acfa3cf8a14442aad0789f158bcd17.jpg)
我想使用str_replace或其类似的替代方法来替换JavaScript中的一些文本.
var text = "this is some sample text that i want to replace";
var new_text = replace_in_javascript("want", "dont want", text);
document.write("new_text");
应该给
this is some sample text that i dont want to replace
If you are going to regex, what are the performance implications in
comparison to the built in replacement methods.
解决方法:
使用正则表达式替换字符串比使用字符串替换要慢得多.
如on JSPerf所示,创建正则表达式可以有不同的效率级别,但所有这些都比简单的字符串替换慢得多. The regex is slower because:
Fixed-string matches don’t have backtracking, compilation steps, ranges, character classes, or a host of other features that slow down the regular expression engine. There are certainly ways to optimize regex matches, but I think it’s unlikely to beat indexing into a string in the common case.
对于JS perf页面上的简单测试运行,我已经记录了一些结果:
<script>
// Setup
var startString = "xxxxxxxxxabcxxxxxxabcxx";
var endStringRegEx = undefined;
var endStringString = undefined;
var endStringRegExNewStr = undefined;
var endStringRegExNew = undefined;
var endStringStoredRegEx = undefined;
var re = new RegExp("abc", "g");
</script>
<script>
// Tests
endStringRegEx = startString.replace(/abc/g, "def") // Regex
endStringString = startString.replace("abc", "def", "g") // String
endStringRegExNewStr = startString.replace(new RegExp("abc", "g"), "def"); // New Regex String
endStringRegExNew = startString.replace(new RegExp(/abc/g), "def"); // New Regexp
endStringStoredRegEx = startString.replace(re, "def") // saved regex
</script>
Chrome 68的结果如下:
String replace: 9,936,093 operations/sec
Saved regex: 5,725,506 operations/sec
Regex: 5,529,504 operations/sec
New Regex String: 3,571,180 operations/sec
New Regex: 3,224,919 operations/sec
从这个答案的完整性(借鉴评论)开始,值得一提的是.replace只替换了匹配字符的第一个实例.它只能用// g替换所有实例.如果替换多个实例name.replace(”,’_’),那么表现权衡和代码优雅可能会更糟.替换(”,’_’).replace(”,’_’);或更糟糕的是(name.includes(”)){name = name.replace(”,’_’)}
内容总结
以上是互联网集市为您收集整理的如何在JavaScript中执行str_replace,替换JavaScript中的文本?全部内容,希望文章能够帮你解决如何在JavaScript中执行str_replace,替换JavaScript中的文本?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。