8

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

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

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

在这个函数中:

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

但是,我似乎无法让它工作,我不确定它是正则表达式还是函数。我需要禁止 %, 。和 ' 也是如此。我只想要数字字符。谁能指出我正确的方向?

4

7 回答 7

22

你可以这样做:

/^[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');

参考现场演示

于 2013-01-07T13:51:54.763 回答
8
var value = $('#targetMe').val(),
    re    = /^[1-9][0-9]{0,8}$/;

if (re.test(value)) {
    // ok
}
于 2013-01-07T13:48:20.143 回答
3

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

var value = +$('#targetMe').val();
if (value && value<9999999999) { /*etc.*/ }
于 2013-01-07T13:50:15.637 回答
3
  var reg      = /^[0-9]{1,10}$/;
  var checking = reg.test($('#number').val()); 

  if(checking){
    return number;
  }else{
    return false;
  }
于 2013-08-19T06:10:09.300 回答
1

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

您需要以下正则表达式:

^[1-9][0-9]{0,9}$
于 2013-01-07T13:48:46.237 回答
0

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

@"^\d{10}$"

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

@"\d{10}"

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

@"(?<!\d)\d{10}(?!\d)"
于 2015-05-09T11:14:39.640 回答
-1

在这里查看此站点,您可以了解 JS 定期过期。如何创建这个?

https://www.regextester.com/99401

于 2020-05-17T14:54:16.233 回答