<script language=javascript>
var re=/^([A-E0-9]|(F(?!(F)))){2}$/i
var str="FF"
alert(re.test(str))
</script>

解决方案 »

  1.   

    wrong, use this:<script type="text/javascript">
    <!--
    function wr(){
        for(var i=0,j=arguments.length;i<j;i++)
            document.write(arguments[i],"&nbsp;&nbsp;&nbsp;");
        document.write("<br>");
    }var reg = /^(([0-9a-e][0-9a-f])|(f[0-9a-e]))$/gi;var ar = ["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];for(var i=0;i<ar.length;i++)
        for(var j=0;j<ar.length;j++){
            var reg = /^(([0-9a-e][0-9a-f])|(f[0-9a-e]))$/gi;
            wr(ar[i]+ar[j]," : ",reg.test(ar[i]+ar[j]));
        }
    var reg = /^(([0-9a-e][0-9a-f])|(f[0-9a-e]))$/gi;
    var str = "123";
    wr(str," : ",reg.test(str));var reg = /^(([0-9a-e][0-9a-f])|(f[0-9a-e]))$/gi;
    var str = "1";
    wr(str," : ",reg.test(str));var reg = /^(([0-9a-e][0-9a-f])|(f[0-9a-e]))$/gi;
    var str = "FFF";
    wr(str," : ",reg.test(str));var reg = /^(([0-9a-e][0-9a-f])|(f[0-9a-e]))$/gi;
    var str = "f";
    wr(str," : ",reg.test(str));//-->
    </script>
      

  2.   

    zhaoxiaoyang(梅雪香@深圳) 很奇怪
    为什么你的代码在FF下是true false交替的结果呢?
    我用的是FF 2.0
      

  3.   

    原因是加了g,正则这里加了G下次就是从结尾开始。所以是false
      

  4.   

    http://community.csdn.net/Expert/TopicView3.asp?id=5422907这里面详细写了