正则表达式只允许10位数以下的数字?

时间:2013-01-07 13:46:48

标签: javascript jquery regex

我正在尝试编写一个正则表达式来验证输入是一个纯正的整数(最多10位数,但我在其他地方应用该逻辑)。

现在,这是我正在使用的正则表达式(我从here获得):

 ^(([1-9]*)|(([1-9]*).([0-9]*)))$

在此功能中:

if (/^(([1-9]*)|(([1-9]*).([0-9]*)))$/.test($('#targetMe').val())) {
            alert('we cool')
        } else {
            alert('we not')
        }

然而,我似乎无法让它工作,我不确定它是正则表达式还是函数。我需要禁止%,.和'以及。我只想要数字字符。有人能指出我正确的方向吗?

7 个答案:

答案 0 :(得分:20)

你可以这样做:

/^[0-9]{1,10}$/

代码:

var tempVal = $('#targetMe').val();
if (/^[0-9]{1,10}$/.test(+tempVal)) // OR if (/^[0-9]{1,10}$/.test(+tempVal) && tempVal.length<=10) 
  alert('we cool');
else
  alert('we not');

参考 LIVE DEMO

答案 1 :(得分:8)

var value = $('#targetMe').val(),
    re    = /^[1-9][0-9]{0,8}$/;

if (re.test(value)) {
    // ok
}

答案 2 :(得分:3)

你需要一个正则表达式吗?

var value = +$('#targetMe').val();
if (value && value<9999999999) { /*etc.*/ }

答案 3 :(得分:2)

  var reg      = /^[0-9]{1,10}$/;
  var checking = reg.test($('#number').val()); 

  if(checking){
    return number;
  }else{
    return false;
  }

答案 4 :(得分:1)

这是盲目复制代码的问题。你复制的正则表达式是用于数字,包括具有任意位数的浮点数 - 并且它是错误的,因为它不允许小数点前的数字0

您需要以下正则表达式:

^[1-9][0-9]{0,9}$

答案 5 :(得分:0)

使用此正则表达式仅匹配十位数字:

@"^\d{10}$"

要在字符串中的任何位置查找十个连续数字的序列,请使用:

@"\d{10}"

请注意,这也会找到11位数字的前10位数字。要在字符串中的任何位置搜索正好10个连续数字。

@"(?<!\d)\d{10}(?!\d)"

答案 6 :(得分:0)

在此处检查此站点,您可以了解JS Regular Expiration。如何创建呢?

https://www.regextester.com/99401