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

解决方案 »

  1.   

    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]));
    }
    看看这样行不
      

  2.   

    我测试了下,应该可以的!我发现我带4的正则太复杂了,我该了一下你的正则var $r=/^\d*[4]{4}$/;但是这样是不能匹配末四位带4的
      

  3.   

    建议换一种思路吧 可以先判断是否是大于等于4的号码 再使用substr() 和strpos() 联合查找最后4位是否存在4这个数字
      

  4.   

    1.大于四位,末尾四位不带4^\d*[^4]{4}$2.大于四位,末尾四位带4^\d*(?![1-35-9]{4}$)\d{4}$