簡體   English   中英

正則表達式檢查數字是否排除特定數字

[英]Regex check if number excludes specific digits

我有一個長度為10位數字的數字,我想檢查我的數字在任何位置是否包含0或2。 我如何使用正則表達式實現這一目標?

您可以使用^\\d*[02]\\d*$檢查0或2

^\\d*[02]\\d*$^開頭為

  • \\d* :零個或多個數字
  • [02] :匹配02
  • \\d* :匹配零個或多個數字,然后匹配$表示匹配結束

演示版

 console.log(/^\\d*[02]\\d*$/.test('1111011111')); console.log(/^\\d*[02]\\d*$/.test('1111211111')); console.log(/^\\d*[02]\\d*$/.test('1111111111')); 

盡管簡單易用的選項將如上所述使用indexOf

 var num = "1111110111"; var num_invalid = "1111111111"; if(num.indexOf("0") >=0 || num.indexOf("2")>=0) { console.log("0 or 2"); }else{console.log("Invalid number");} if(num_invalid.indexOf("0") >=0 || num_invalid.indexOf("2")>=0) { console.log("0 or 2"); }else{console.log("Invalid number");} 

使用regEx作為/[02]/g ,它每位至少搜索一次0或2的出現率

 function test(elmt){ var reg=/[02]/g; document.getElementById('result').innerHTML=!reg.test(elmt.value); } 
 <input onkeyup="test(this)"/> <div id="result"> </div> 

如果要檢查您的數字是否有10位數字並且0或2在某處至少出現一次,那么提前查找可能是最簡單的方法。

^(?=.*[02])\d{10}$

演示版

var isContain = false;
var no = 1234567890;
if(no.toString().split("").indexOf("2")>=0 || 
no.toString().split("").indexOf("0")>=0){
isContain = true;
}

暫無
暫無

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

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