我正在被使用replaceText插件包网页上的所有字(和多余的空格/标点)在span标记一个书签。该插件遍历页面上的所有文本节点,并允许我调用一个函数来操作每个页面的内容,而不会破坏页面上的任何其他HTML格式。 (这些都不是问题,我很确定,但我觉得上下文可能有用)。我对该函数的调用看起来是这样的,供大家参考:如何将正则表达式中的“* /”解释为块注释?
$("body *").replaceText(/\S+\s*/g, spanWrap);
的问题是最好的正则表达式我已经找到了我的目的,分离这些词 - /\S+\s*/g
- 包含结束字符块注释(“* /”)。如果我在Notepad ++中的.js文件之前添加块注释的开头几行,我可以看到语法突出显示器正在读取它。
当我跑我的书签,大多数网站似乎与这个问题没有任何问题和书签按预期工作。然而,一些网站,其原因我无法预测,抛出了一个“Uncaught SyntaxError: Unexpected token <
”错误和书签中断/停止运行。如果我改变我使用的replaceText
功能的正则表达式来一个我一直在使用的书签的早期版本 - /\b(\S+?)\b/g
- 同时改变绝对没有其他的书签,这些网站停止给错误和书签工作得很好,所以我必须相信它是由于引起它的块注释闭包的存在。
对于我想要做的书签的目的,虽然,它的表达与该评论封闭 - /\S+\s*/g
- 作品很多,比另一个,它不会标点符号更好和白色空间。但是,如果我的小书签在某些网站上没有中断,我也很喜欢它。
那么,有没有任何办法解决的正则表达式,我有那么它没有被读作评论,或者你可以建议一个可以与不同的语法什么的,也许做同样的工作吗? (如果它不是来自我的问题很明显,我有多么的正则表达式的工作,并通过复制他们从其他堆栈溢出的问题/解答得到了我使用的是在这个例子中,那些最起码的理解)
我怀疑任何JavaScript引擎解释这个序列作为注释的结束。那真的很奇怪。 – 2013-02-18 14:46:05
什么是'spanWrap'? – Anirudha 2013-02-18 14:46:48
@FelixKling - 我会感到惊讶,如果任何没有:http://jsbin.com/ocomuy/1/ – Quentin 2013-02-18 14:47:17