簡體   English   中英

在jscript regexp字符類中轉義正斜杠?

[英]Escape forward slash in jscript regexp character class?

我有一個用於數字( 0-9 )和/或正斜杠( / )的正則表達式測試。 看起來像這樣:

/^[0-9/]+$/i.test(value)

現在,我相信這是正確的,但是Eclipse JavaScript驗證程序不同意:

令牌“]”上的語法錯誤,請刪除此令牌

我想這是因為分隔符/定界符是/並且日食“認為”正則表達式已完成(因此[ ]會是意外的)。

我們可以通過轉義/來滿足日食:

/^[0-9\/]+$/i.test(value)

請注意,這兩個版本均適用於我。

我的問題是:

  • 據我知道,我不需要特別逃避斜線在這個范圍內。 它可能是特定情況的(例如,對於javascript,它是使用的分隔符)。
  • 盡管它們似乎都可以正常工作,但由於在不同環境中的行為,我寧願使用“正確”版本,而且,..因為正確且全部:)

有誰知道我該怎么辦? 逃脫與否? 我沒有找到任何信譽良好的網站告訴我逃脫/范圍,但是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM