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 无法对其进行优化。
  • 使用合适的量词。
  • 把正则表达式赋值给变量并重用它们。将正则表达式赋给变量以避免对它们重新编译。
  • 将复杂的正则表达式拆分为简单的片段(化繁为简)。