我对数字(0-9
)和/或正斜杠(/
)进行了正则表达式测试。它看起来像这样:
/^[0-9/]+$/i.test(value)
现在我认为这是正确的,但eclipse javascript验证器不同意:
令牌“]”上的语法错误,删除此令牌
我想这是因为分隔符/分隔符是/
而eclipse'认为'正则表达式已完成(因此]
将是意外的)。
我们可以通过逃避/
来满足日食:
/^[0-9\/]+$/i.test(value)
请注意,这两个版本都适用于我。
我的问题是:
有谁知道我应该做什么? 逃避与否?我没有发现任何声誉良好的网站告诉我逃避范围内的/
,但Eclipse验证器可能并非完全愚蠢......
答案 0 :(得分:9)
该标准清楚地表明,除了\
,]
和换行符之外,你可以将任何未转义的字符放在角色类中:
RegularExpressionClassChar ::
RegularExpressionNonTerminator but not ] or \
RegularExpressionBackslashSequence
RegularExpressionNonTerminator ::
SourceCharacter but not LineTerminator
(http://es5.github.com/#x7.8.5)。无需逃避/
。
另一方面,我个人会在遇到疑问时逃避一切,只是为了让不太聪明的解析器感到高兴。