JSLint正则表达式违规问题

7

I have the following regular expresssion

/\<oauth_token\>([^\<]*)\<\/oauth_token\>/

我看到 jsLint 报告了未转义的 < 字符,但不知道原因。请问有人可以给我指点吗?
这个正则表达式被分配给一个变量,并在整个文件中使用。它在一个 nodejs 模块中。
这是一种绕过非标准兼容的 OAUth 响应的方法,未来将会得到修复。我不想引入 XML 解析器作为额外依赖来解决这个问题。
我在 JSHint 和 node-jslint 中都看到了这个违规行为。
您可以在 Github 上看到该文件的完整源代码。JSHint 的精确输出如下:
lib/oauth-helper.js: line 5, col 21, Unexpected escaped character '<' in regular expression.
lib/oauth-helper.js: line 5, col 39, Unexpected escaped character '<' in regular expression.
lib/oauth-helper.js: line 5, col 44, Unexpected escaped character '<' in regular expression.
lib/oauth-helper.js: line 6, col 22, Unexpected escaped character '<' in regular expression.
lib/oauth-helper.js: line 6, col 47, Unexpected escaped character '<' in regular expression.
lib/oauth-helper.js: line 6, col 52, Unexpected escaped character '<' in regular expression.

你的脚本在一个<script>标签中吗? - Digital Plane
它在一个 nodejs 模块中,我已经更新了问题。 - Raoul
Node.js没有XML解析器来提取令牌值吗? - Pekka
我相信它可以,但这是唯一已知的XML用例。我不想添加额外的依赖项,特别是因为这是一个hack来解决非标准符合的OAUth响应,这将在未来某个时候得到修复。 - Raoul
1个回答

16

在正则表达式中,不需要对"<"字符进行转义。这就是JSLint告诉你的 - 模式中"<"字符前面的反斜杠是不必要的。


糟糕。我没能看到问题的本质,应该重新阅读信息。谢谢。 - Raoul
是的,+1 :) 它也对你说: “在正则表达式中出现了意外的转义字符 '<'。” - gaRex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接