javascript - 为 google-code-prettify 编译正则表达式

标签 javascript regex

我们正在开发 google-code-prettify 的扩展,它可以对网页上的源代码进行代码着色。我们在 Mathematica 中有一个很长的关键字列表(大约 4000 个),虽然性能仍然非常好,但我想知道我是否可以加快速度。

我们的关键字列表的正则表达式如下所示

var keywords = 'AbelianGroup|Abort|AbortKernels|AbortProtect|Above|Abs|Absolute|\
AbsoluteCurrentValue|AbsoluteDashing|AbsoluteFileName|AbsoluteOptions|\
AbsolutePointSize|AbsoluteThickness|AbsoluteTime|AbsoluteTiming|AccountingForm';
new RegExp('^(?:' + keywords + ')\\b')

这样的 正则表达式在编译时能否变得更快?首先编译它是否有意义,因为 google-code-prettify 是在服务器上运行的 JavaScript。我不知道每次加载网页时是否都会重新加载此脚本。在这种情况下,编译它可能不值得开销。

最佳答案

  1. google-code-prettify 在客户端运行(它是一个脚本;浏览器从服务器请求源代码)。
  2. 创建 RegExp 对象在运行时编译它。

换句话说,保持原样。

关于javascript - 为 google-code-prettify 编译正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9052140/

相关文章:

javascript - 通过传递参数从 html.actionlink 调用 JS

javascript - jQuery 问题 |需要触发事件两次才能正常工作

javascript - mongoDB - $push _id 到特定用户

ruby - 使用正则表达式将数字更改为字符

php - 如何在php中使用J修饰符?

regex - MSBuild 4.0 正则表达式解析

Python正则表达式findall在解析文本文件后返回空列表

regex - 使用 grep/sed/awk 列出 2 个关键字之间的行

javascript - 在文本段落内对齐内联 div

javascript - Backbone.js,为什么这个回调被多次触发?