正则表达式检查数字是否排除特定数字

时间:2017-06-11 11:40:58

标签: javascript regex

我有一个长度为10位的数字,我想检查我的号码在任何位置是否包含0或2。 如何使用正则表达式来实现这一目标?

4 个答案:

答案 0 :(得分:2)

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

^\d*[02]\d*$^

开头
  • \d*:零个或多个数字
  • [02]:匹配02
  • \d*:匹配零个或多个数字,然后$表示匹配结束

Demo

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

虽然简单明了的选项可能会按照above

的建议使用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");}

答案 1 :(得分:1)

使用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>

答案 2 :(得分:0)

如果你想检查你的号码是否有10位,那么0或2在某处至少出现一次,那么前瞻可能是最简单的方法。

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

Demo

答案 3 :(得分:0)

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