2013-03-10 57 views
2

enter image description here字符範圍失敗的IntelliJ的JSLint的檢查

什麼,就是要糾正我沒有檢查的最簡單的方法內的正則表達式字符類? intellij中沒有選項(我可以找到)允許字符範圍內的字符類。

+1

,爲什麼你有'\ w'內'[]'? – Mathletics 2013-03-10 14:54:38

+0

@Mathletics因爲我對正則表達式一無所知,只是從另一個SO答案複製而來。 – NimChimpsky 2013-03-10 18:36:06

+0

在'[]'中使用'\ w'沒有什麼問題。 – MikeM 2013-03-10 22:05:00

回答

8

如果你想允許連字符-字符類,你需要把它立即開[後(參見「字符類」部分http://www.regular-expressions.info/reference.html)或之前立即關閉](我發現至少在某些語言中起作用),否則它被認爲表示一個範圍。

,並注意這也通過@IanMackinnon上this SO question評論(雖然我無法找到一個非常簡短的搜索完成後,該權威源):「字符類中明確逃逸連字符是另一個JSLint的推薦。」 - 這寫在文字連字符的上下文中。無論jsLint 需要這個還是沒有通過檢查,這樣做可能是一個很好的做法,以便在將來的開發人員意外地將該類變爲一個範圍時,轉義)連字符和打開(或關閉)括號。

因此,我認爲當前讀取爲[\w-+\s]的正則表達式部分應重寫爲[\-\w+\s])。

而其後的[\w-+][\-\w+],等...

+0

第一位錯誤 - 他正在向RegExp構造函數傳遞一個正則表達式(不必要的),如果它是一個字符串,'\ w'只需要是'\\ w'。他或者需要避開連字符'\ -',或者按照您的建議將其放在課程的開始或結束時。 – MikeM 2013-03-10 13:42:08

+0

@MikeM確實 - 感謝您強調我的錯誤,已更新我的回答以反映。 – Sepster 2013-03-10 13:48:15