JavaScript正则表达式5-5000

时间:2014-03-20 01:14:02

标签: javascript regex

我知道这个:

var regStartMoney = /[1-5][0-9][0-9][0-9]/;

允许您从1-5999输入。

如何在5-5000范围内进行操作?

4 个答案:

答案 0 :(得分:1)

正则表达式滥用!只要做到理智:

var int = parseInt(input,10);
if (isNan(input)) {
    alert('Please enter a number.');
} else if (input != int) {
    alert('Decimals are not allowed.');
} else if (!(int >= 5 && int <= 5000)) {
    alert('Your number must be between 5 and 5000 (inclusive).');
} else {
    alert('Your number is valid!');
}

答案 1 :(得分:0)

var regStartMoney = /^0*(?:[5-9]|[1-9][0-9][0-9]?|[1-4][0-9][0-9][0-9]|5000)$/;

答案 2 :(得分:0)

为什么不呢:

var money = parseInt(input);
var test = Math.min(Math.max(money, 5), 5000);

if(money !== test) //

答案 3 :(得分:0)

你应该真的转换为数字并进行比较。但这不是你的问题所以这是你的答案:

var regStartMoney = /^0*([5-9]|([1-9]\d{0,2})|([1-4]\d{3})|(50{3}))$/;

这是一个测试脚本:

<script>
function checkMoney() {
  var money=document.getElementById("money").value;
  if (money.match(/^0*([5-9]|([1-9]\d{0,2})|([1-4]\d{3})|(50{3}))$/)) {
    alert(money+" is between 5-5000");
  } else {
    alert(money+" is not between 5-5000");
  }
}
</script>
<input id="money"/></br>
<input type="submit" onClick="checkMoney();"/><br/>

jsfiddle

上进行测试