日期:2014-05-16  浏览次数:20419 次

急求一个JS 正则表达式 匹配 号码末四位不带4
要求匹配一个号码,号码位数大于等于4为,求一个正则表达式匹配号码末四位不带4

下面这个是带4的
<html>
<script type="text/javascript">
 function verify()   

     {   
      var iphoneNum = "111411141"; 
      var pattern = /(\d{0,30}(\d{3}[4]|\d{2}[4]\d|\d[4]\d{2}|[4]\d{3}))$/;   
      flag = pattern.exec(iphoneNum);    
      if(flag)   
      {   
       alert("4");
      }   
      else   
       {   
        alert("!4");      
        }   
      }   
</script>
<body>
 <form >   
    <input type="button" onclick = 'verify();'>   
    </form> 
</body>
</html>

------解决方案--------------------
var $a='342789';
var $b='279324';
var $r=/^\d*[1-35-9]{4}$/;
var $c =$r.test($a);

------解决方案--------------------
var reg=/^\d*?(?!.*?4.*?)\d{4}$/;
var a=["10000","102040","1004"];
for(var i=0;i<a.length;i++){
alert(a[i]+":"+reg.test(a[i]));
}
看看这样行不
------解决方案--------------------
\d{7}[1-35-9]{4}
------解决方案--------------------
1.大于四位,末尾四位不带4

^\d*[^4]{4}$

2.大于四位,末尾四位带4

^\d*(?![1-35-9]{4}$)\d{4}$