2011-09-08 91 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 */ 
相關問題