1-10和1-5的数字的正则表达式是什么?请帮助这个陷入困境的灵魂。
答案 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]$/
更新:
答案 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]$/