我有一个长度为10位的数字,我想检查我的号码在任何位置是否包含0或2。 如何使用正则表达式来实现这一目标?
答案 0 :(得分:2)
您可以使用^\d*[02]\d*$
检查0或2
^\d*[02]\d*$
:^
以
\d*
:零个或多个数字[02]
:匹配0
或2
\d*
:匹配零个或多个数字,然后$
表示匹配结束
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)
答案 3 :(得分:0)
var isContain = false;
var no = 1234567890;
if(no.toString().split("").indexOf("2")>=0 ||
no.toString().split("").indexOf("0")>=0){
isContain = true;
}