高性能javaScript(五)—— 字符串和正则表达式

密集的字符串操作和草率地编写正则表达式可能产生严重地性能障碍。

  • 当连接数量巨大或尺寸巨大的字符串时,数组合并是唯一在IE7及更早版本中性能合理的方法。
newStr = strs.join("");
  • 如果不考虑IE7及更早版本的性能,数组项合并是最慢的字符串连接方法之一。推荐使用简单的+和+=操作符替代,避免不必要的中间字符串。
//以下方法会产生临时字符串
str += "one" + "two";

//使用以下方法避免产生临时字符串
str = str + "one" + "two";
  • 回溯既是正则表达式匹配功能的基本组成部分,也是正则表达式的低效之源。
  • 回溯失控发生在正则表达式本应快速匹配的地方,但因为某些特殊的字符串匹配动作导致运行缓慢甚至浏览器崩溃。避免这个问题的方法是:使相邻的字元互斥,避免嵌套量词对同一字符串的相同部分多次匹配,通过重复利用预查的原子组去除不必要的回溯。
  • 提高正则表达式效率的各种技术手段会有助于正则表达式更快地匹配,并在非匹配位化更少地时间。
  • 正则表达式并不总是完成工作地最佳工具,尤其当你只搜索字面字符串的时候。
  • 尽管有许多方法可以去除字符串的首尾空白,但使用两个简单的正则表达式(一个用来去除头部空白,另一个用来去除尾部空白)来处理大量字符串内容能提供一个简洁而跨浏览器的方法。从字符串末尾开始循环向前搜索第一个非空白字符,或者将此技术同正则表达式结合起来,会提供一个更好的替代方案,它很少受到字符串长度影响。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容