JavaScript 正则表达式产生未捕获的语法错误 : Unexpected token ILLEGAL

标签 javascript regex syntax-error

我的 JavaScript 中有这个,

alert(words.match(\b.(\w*)\b));

,其中 words 是之前定义的字符串。但是,正则表达式 (\b.(\w*)\b) 生成控制台错误 Uncaught SyntaxError: Unexpected token ILLEGAL。我认为这是反斜杠,但无论我做什么,我仍然遇到问题。我在 Stackoverflow 和 Google 上彻底研究了这个问题,但没有一个结果有效或符合我的情况。

这是我正在使用的正则表达式:http://regexr.com?36u4v 。如有任何保留,我们将不胜感激。

最佳答案

这归结为“是 \b.(\w*)\b RegExp 吗?”嗯,有点像,但你还没有告诉口译员这一点。它不是 JavaScript 中的 RegExp 文字。您需要将其作为字符串传递到 RegExp构造函数,或使用文字表示法,以 /

开头和结尾
/\b.(\w*)\b/

至于你的错误,解释器首先到达 \ 并且不知道这意味着什么,所以它告诉你 token (\) 是意外的,所以在您使用它的地方是“非法的”。


对于多个匹配,您需要设置 global 标志,例如多次查找“foo”

/foo/g

does this regex work well for selecting all words, excluding spaces and punctuation (other than underscores and hyphens)

\wshorthand对于类 [A-Za-z0-9_],因此您目前没有匹配连字符。您的 . 还将匹配大多数字符,包括空格和标点符号。您可以将 *(零个或多个)替换为 +(一个或多个),这样就不需要 .。因此以下内容可能更适合您的需求

/\b([A-Za-z0-9_-]+)\b/g

关于JavaScript 正则表达式产生未捕获的语法错误 : Unexpected token ILLEGAL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19613757/

相关文章:

javascript - 如何通过单击按钮使 html 文档出现在另一个 html 文档中,并对其进行样式设置

javascript - 我如何在 jQuery 中创建一个循环,以便在我的 div 的末尾添加一个数字?

c - 如何重新格式化一组文件中出现的所有换行符

regex - vim 正则表达式 : negative backreferences?

javascript - js 正则表达式匹配以 X 开头而不是 Y 开头的路径

javascript - 动画形状内的 KineticJS 点击检测

javascript - 使用 execCommand 设置 anchor 名称

java - PreparedStatement 上的 MySQL 语法错误在多行时失败,在单行上执行

java - "Unexpected token"使用下界通配符 (Java)

带大括号的 Javascript const 声明