Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jscript regexp字符类中的转义正斜杠?_Javascript_Regex_Eclipse_Escaping - Fatal编程技术网

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标准。并不是每个人都完全正确,但基本的东西在任何地方都应该是一样的。是的,一个额外的反斜杠并没有坏处,即使省略它是安全的。是的,令人烦恼的是,记事本++的语法高亮显示也会出错。