[英]Escape forward slash in jscript regexp character class?
我有一個用於數字( 0-9
)和/或正斜杠( /
)的正則表達式測試。 看起來像這樣:
/^[0-9/]+$/i.test(value)
現在,我相信這是正確的,但是Eclipse JavaScript驗證程序不同意:
令牌“]”上的語法錯誤,請刪除此令牌
我想這是因為分隔符/定界符是/
並且日食“認為”正則表達式已完成(因此[ ]
會是意外的)。
我們可以通過轉義/
來滿足日食:
/^[0-9\/]+$/i.test(value)
請注意,這兩個版本均適用於我。
我的問題是:
有誰知道我該怎么辦? 逃脫與否? 我沒有找到任何信譽良好的網站告訴我逃脫/
范圍,但是Eclipse-validator可能並不完全愚蠢...
該標准明確規定,除了\\
, ]
和換行符,您可以將所有未轉義的字符放在字符類中:
RegularExpressionClassChar ::
RegularExpressionNonTerminator but not ] or \
RegularExpressionBackslashSequence
RegularExpressionNonTerminator ::
SourceCharacter but not LineTerminator
( http://es5.github.com/#x7.8.5 )。 無需逃生/
。
另一方面,我本人會在有疑問時逃避一切,只是為了讓不太聰明的解析器感到高興。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.