如何输入某个数字的数字

时间:2009-10-08 14:19:02

标签: jquery regex

我想只输入具有以下条件的文本框中的数字

  • 最多3位数
  • 最大值从0到250 ......不应接受251。

到目前为止,我已经编写了以下代码..如何采取其他条件

this.value.match(/[^0-9]/g)

6 个答案:

答案 0 :(得分:3)

你不需要正则表达式。

var val = parseInt($(this).val(), 10);
alert(val >= 0 && val < 250);

答案 1 :(得分:2)

var val = parseInt(this.value, 10);

if(isNaN(val)) {
  alert("Invalid amount: " + val);
  this.select();
  return false;
}

if(val < 0 || val > 250) {
  alert("Amount can range from 0 to 250");
  this.select();
  return false;
}

答案 2 :(得分:1)

试试这个


var intVal = parseInt(this.value,10);
if( intVal > 0 && intVal < 250)
    // ...

答案 3 :(得分:1)

this.value.match(/[^0-9]{1,3}/g)

会给你1到3位数字,但正则表达式可能是错误的方法,因为你需要在正则表达式之后检查边界。

使用像

这样的东西可能会更好
if(this.value < 0 || this.value > 250) {
    // foo
}

答案 4 :(得分:1)

如果你真的想要一个正则表达式(尽管如上所述,其他选项可能更合适),这里有一个匹配0-250:

/^([01]?[0-9]{1,2}|2([0-4][0-9]|50))$/

打破这一点,我们使用|运算符来匹配:

[01]?[0-9]{1,2}

或者

2([0-4][0-9]|50)

第一部分匹配0(或00或000)到199.第二部分使用类似的方案来匹配200到249或250.

答案 5 :(得分:1)

正则表达式对此完全矫枉过正。您可以使用javascript在客户端验证这一点。

如果您碰巧在ASP.NET中执行此操作,则可以使用Range Validator控件来确保用户只输入0到250之间的整数(或者您想要的最小值和最大值)。