0

为了说明这个微妙的问题,这里有一些 JavaScript 示例,以便您可以直接在浏览器中进行测试:

/[2-5]+/.test('2')   // true, as expected.
/[2-5]+/.test('-')   // false, as expected.
/[2-5]+/.test('2-')  // true. WTF?!!!

问题:

  1. 这是错误还是功能?
  2. 测试字符类时如何排除连字符?

更新

这是一个愚蠢的问题。我的错。在再次编码之前需要休息一下。

4

1 回答 1

2

尝试这样的事情。

/^[2-5]+$/.test('2-')

这将确保从字符串的前面 (^) 到结尾 ($) 只有数字 2-5。

于 2012-11-11T01:16:01.427 回答