这将在HTML上多次运行javascript。所有或表达式都会变慢吗?可以优化吗?
\<[^\>]*?(abbr|acronym|address|applet|area|article|aside|audio|base|basefont|bdi|bdo|big|blockquote|body|button|canvas|caption|center|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|dialog|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|head|header|hr|html|iframe|img|input|ins|kbd|keygen|label|legend|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|optgroup|option|output|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|source|strike|style|sub|summary|sup|textarea|time|title|track|tt|var|video|wbr)[^\>]*?\>/g
答案 0 :(得分:2)
答案 1 :(得分:2)
您可以尝试将源代码中发现的非常元素名称(a
,div
)移到列表的前面:
… (a|div|abbr| …
另外,我认为您的模式会匹配,例如< notanabbreviation >
。如果那不是您想要的,请尝试
<\b(a|abbr|…)\b[^>]*?>
交替之前的\b
有助于因为它让引擎提前退出而不尝试所有的交替。
但你只需要测试看看。我以jsperf test using nytimes.com为例。
答案 2 :(得分:0)
在g之后添加i会使其不区分大小写
也因为它是javascript,也许你可以使用哈希而不是巨大的正则表达式