在jscript正则表达式字符类中转义正斜杠?
问题描述:
我对数字(0-9
)和/或正斜杠(/
)进行了正则表达式测试。它看起来像这样:在jscript正则表达式字符类中转义正斜杠?
/^[0-9/]+$/i.test(value)
现在,我相信这是正确的,但日食的javascript验证不同意:
语法错误令牌 “]”,删除此令牌
我想这是因为分隔符/分隔符是/
,并且eclipse'认为'正则表达式已完成(因此]
将是意外的)。
我们可以通过逃避/
像这样满足日食:
/^[0-9\/]+$/i.test(value)
请注意,这两个版本为我工作。
我的这个问题是:
- 据我知道我做的不需要专门逃脱斜线在这个范围内。这可能是具体情况(如在javascript中,它是使用的分隔符)。
- 虽然他们似乎都在工作,我宁愿使用“正确”的版本,因为在不同的环境行为,以及,以及..因为正确和所有:)
有谁知道我应该这样做? 是否逃脱?我没有找到让我逃避的范围内/
任何有信誉的网站,但Eclipse的验证可能是太愚蠢了......
答
标准明确说,你可以把任何东西转义字符类除外\
,]
和换行符:
RegularExpressionClassChar ::
RegularExpressionNonTerminator but not ] or \
RegularExpressionBackslashSequence
RegularExpressionNonTerminator ::
SourceCharacter but not LineTerminator
(http://es5.github.com/#x7.8.5)。无需转义/
。另一方面,如果有疑问,我个人会逃避一切,只是为了让更少的智能解析器开心。
是的,恼人的Notepad ++的语法突出显示也会出错。 – MikeM 2013-01-04 19:32:32