簡體   English   中英

正則表達式只允許 10 位以下的數字?

[英]Regex to only allow numbers under 10 digits?

我正在嘗試編寫一個正則表達式來驗證輸入是否為純正整數(最多 10 位,但我正在其他地方應用該邏輯)。

現在,這是我正在使用的正則表達式(我從這里得到):

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

在這個函數中:

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

但是,我似乎無法讓它工作,我不確定它是正則表達式還是函數。 我需要禁止 %, 。 和 ' 也是。 我只想要數字字符。 任何人都可以指出我正確的方向嗎?

你可以這樣做:

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

參考現場演示

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

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

你需要正則表達式嗎?

var value = +$('#targetMe').val();
if (value && value<9999999999) { /*etc.*/ }
  var reg      = /^[0-9]{1,10}$/;
  var checking = reg.test($('#number').val()); 

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

這就是盲目復制代碼的問題。 您復制的正則表達式適用於包括具有任意位數的浮點數的數字 - 它有問題,因為它不允許小數點前有數字0

您需要以下正則表達式:

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

使用此正則表達式僅匹配十位數字:

@"^\d{10}$"

要查找字符串中任意位置的十個連續數字的序列,請使用:

@"\d{10}"

請注意,這也將查找 11 位數字的前 10 位數字。 在字符串中的任意位置搜索正好 10 個連續數字。

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

在這里檢查這個網站你可以學習 JS 定期過期。 如何創建這個?

https://www.regextester.com/99401

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM