2011-09-08 84 views
13

jslint报告消息不安全'。'。如何解决jslint消息不安全'。'

在行

html = /<body.*?>([\s\S]*)<\/body>/.exec(responseText); 

如何解决这一问题?

更新

体后和关闭托架可以有属性,这样\ S前?无法使用。 Javascript在浏览器中运行,使用jQuery。 从字符串中提取身体元素内容的最佳方式而不是此?

回答

16

如果您确实希望它匹配所有内容并且不希望发生jslint错误,您可以尝试类似此方法。

var everything = /.*?/;// not jslint acceptable 
var all = /[\w\W]*?/;// jslint acceptable 

基本上它说任何单词字符和任何非单词字符......几乎涵盖了一切。

+0

有点古怪,但正是我所需要的。谢谢。 – phatmann

+2

我发现jslint为什么是一个完全清晰的正则表达式抛出一个错误令人着迷,但是当你混淆了你实际正在做的事情时,它突然变得很好。 – timgeb

5

在JSLint中检查是否存在,因为如果您允许任何字符(.)或除某些指定的字符([^x])之外的任何字符,您可能会得到您不期望的匹配。如果您在JSLint中打开了该检查,则需要编写正则表达式来指明应该匹配的正则表达式。

如果您不想关闭该检查,并且您想要一个无错的LINT,请确定您认为可以在“body”的“y”与关闭的尖括号之间找到什么,以及以这种方式编写你的正则表达式。

+1

由于只有一个字符,我会说'\ s?'可能是他正在寻找。 –

+0

@Py:body元素中可能有属性,所以\ s?无法使用。我更新了问题。 – Andrus

+0

@JAAulde:谢谢。我想提取身体标记内的整个内容。 javascript在浏览器中运行,使用jquery。我更新了问题。 – Andrus

16

您可以将regexp: true添加到jsLint选项。只需添加一行到您的JavaScript文件,如:

/*jslint indent: 4, maxerr: 50, vars: true, regexp: true, sloppy: true */ 
相关问题