在javascript中用于验证的正则表达式为1-10

时间:2011-05-29 14:33:18

标签: javascript regex

1-10和1-5的数字的正则表达式是什么?请帮助这个陷入困境的灵魂。

7 个答案:

答案 0 :(得分:11)

您可以通过javascript中的简单数字检查来实现这一目标:

// Convert input to integer just to be sure
mynum = parseInt(mynum, 10);

// Check number-range
if(mynum >= 1 && mynum <=10)
and
if(mynum >= 1 && mynum <=5)

如果你真的想使用正则表达式:

/^([1-9]|10)$/
and
/^[1-5]$/

更新

  • 修正了第一个正则表达式以正确匹配字符串边界
  • 在第一个示例中添加了parseInt以确保正确的号码检查

答案 1 :(得分:4)

这不是正则表达式的好用。

使用简单的条件:

if (x > 0 && x < 6) {
  // x is 1 - 5
}

if (x > 0 && x < 10) {
  // x is 1 - 10
}

答案 2 :(得分:3)

对于1-5,您只需将其作为字符类括起来:

  /^[1-5]$/

对于1-10,你只需要另外一个选择:

  /^([1-9]|10)$/

答案 3 :(得分:2)

您是否有理由使用正则表达式?

/([1-9]|10)/

答案 4 :(得分:1)

使用数字比较。以下Number扩展可以检查数字是否介于2个值之间:

Number.prototype.between = 
  function(lower,upper, includeBoundaries){
    lower = Number(lower);
    upper = Number(upper);
    noCando = isNaN(lower) || 
              isNaN(upper) || 
              lower>=upper;
    if ( noCando ) {
      throw 'wrong arguments or out of range';
    }
    return includeBoundaries
           ? this >= lower && this <= upper
           : this > lower && this < upper
};
// usage:
(12).between(1,12); /=> false
(12).between(1,12,true); /=> true
(12).between(0,15,true); /=> true
(0).between(-5,1); //=> true

该函数将参数转换为Number,因为0可以在javascript中求值为布尔值,以便能够检查参数是否为实数值并且能够检查lower是否不大于/等于upper。在这些情况下会引发错误。

includeBoundaries参数还检查Number是否等于lower或upper,如果没有提供,该函数返回一个真正的'between'检查。

答案 5 :(得分:1)

答案是

/^([1-9]|10)$/

答案 6 :(得分:0)

对于1-10,它可以是

/^([1-9]|10)$/

和1-5简化

/^[1-5]$/