Javascript jscript regexp字符类中的转义正斜杠?
我有一个正则表达式测试数字(Javascript jscript regexp字符类中的转义正斜杠?,javascript,regex,eclipse,escaping,Javascript,Regex,Eclipse,Escaping,我有一个正则表达式测试数字(0-9)和/或正斜杠(/)。看起来是这样的: /^[0-9/]+$/i.test(value) 现在我相信这是正确的,但eclipse javascript验证程序不同意: 令牌“]”上出现语法错误,请删除此令牌 我想这是因为分隔符/分隔符是/,eclipse“认为”正则表达式已经完成(因此]将是意外的) 我们可以通过如下方式转义/来满足eclipse: /^[0-9\/]+$/i.test(value) 请注意,这两个版本都适用于我 我的问题是: 据我所知,我
0-9
)和/或正斜杠(/
)。看起来是这样的:
/^[0-9/]+$/i.test(value)
现在我相信这是正确的,但eclipse javascript验证程序不同意:
令牌“]”上出现语法错误,请删除此令牌
我想这是因为分隔符/分隔符是/
,eclipse“认为”正则表达式已经完成(因此]
将是意外的)
我们可以通过如下方式转义/
来满足eclipse:
/^[0-9\/]+$/i.test(value)
请注意,这两个版本都适用于我
我的问题是:
- 据我所知,我不需要特别在这个范围内避开正斜杠。它可能是特定于情况的(如在javascript中,它是使用的分隔符)
- 尽管它们看起来都能工作,但我还是宁愿使用“正确”版本,因为它们在不同的环境中的行为,而且。。因为正确无误:)
有人知道我该做什么吗是否转义?我没有发现任何知名网站告诉我转义某个范围内的
/
,但Eclipse验证器可能并不完全愚蠢…标准明确规定,除了\
,]
和换行符外,可以将任何未转义的内容放入字符类中:
RegularExpressionClassChar ::
RegularExpressionNonTerminator but not ] or \
RegularExpressionBackslashSequence
RegularExpressionNonTerminator ::
SourceCharacter but not LineTerminator
()。无需转义/
另一方面,我个人会在有疑问的时候逃避一切,只是为了让不那么聪明的解析器高兴。Nice one:)。我对“Ecma标准”不是很熟悉,这是大多数.js解析器使用的标准?你能在不破坏东西的情况下逃逸一些不需要逃逸的东西吗?@Nanne:是的,大多数javascript供应商都试图跟上ecma标准。并不是每个人都完全正确,但基本的东西在任何地方都应该是一样的。是的,一个额外的反斜杠并没有坏处,即使省略它是安全的。是的,令人烦恼的是,记事本++的语法高亮显示也会出错。