try catch的性能
try catch要慎用,如果可以把程序写得健壮就不要用 try catch 来解决问题。
提高正则表达式效率的方法
- 关注如何让匹配更快失败:正则表达式慢的原因通常是匹配失败的过程慢,而不是匹配成功的过程慢。
- 正则表达式以简单、必需的字元开始。比如 锚
^
或$
、特定字符串(比如:x 或\u263A
)、字符类(比如:[a-z]
或类似\d
的速记符)和单词边界(\b
). - 使用量词模式,使它们后面的字元互斥。
减少分支数量,缩小分支范围。 | 替换前 | 替换后 | | —- | —- | | cat|bat | [cb]at | | red|read | rea?d | | red|raw | r(?:ed|aw) | | (.|\r|\n) | [\s\S] |
使用非捕获组。比如用
(?:...)
来替代(...)
。- 只捕获感兴趣的文本以减少后处理。
- 暴露必需的字元。例如:正则表达式
/^(ab|cd)/
暴露它的字符串起始锚,浏览器可以对此进行优化,然而/(^ab|^cd)/
没有暴露它的锚^
,IE 无法对其进行优化。 - 使用合适的量词。
- 把正则表达式赋值给变量并重用它们。将正则表达式赋给变量以避免对它们重新编译。
- 将复杂的正则表达式拆分为简单的片段(化繁为简)。