从正则表达式字符类中排除连字符?

时间:2012-11-11 01:14:09

标签: regex

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

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

问题:

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

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

1 个答案:

答案 0 :(得分:2)

尝试这样的事情。

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

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