你好,我虽然不会用正则,但是可以用另一种方法解决!!就是event.keyCode
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
function pull()
{
var e=event.keyCode;
if(!(e>=48&&e<=57||e==189))
{

alert("输入内容只能包括数字或者'-'");

document.all.txt.value="";
}
}
//-->
</SCRIPT>
<BODY>
<form name="frm" onsubmit="return check()">
<input type="text" name="txt"onkeyup="pull()" />
<input type="submit" />
</form>
</body>
</BODY>
</HTML>

解决方案 »

  1.   


    /// <fMin>最少小数位数</fMin>
    /// <fMax>最多小数位数</fMax>
    /// <AllowInt>整数是否通过检验</AllowInt>
    function IsNumber( str, fMin, fMax, AllowInt ){
    var strMin = fMin > 0 ? fMin.toString() : "0";
    var strMax = fMax > 0 ? fMax.toString() : "";
    var strAllowInt = AllowInt ? "?" : "";
    var reg = new RegExp( "^\\-?([1-9]\\d*|0)(\\.\\d{" + strMin + "," + strMax + "})" + strAllowInt + "$" );
    return reg.test( str );
    };
      

  2.   

    var reg=/^(\d{13}|\-{13})$/;
      

  3.   

    <script type="text/javascript">
    function checkStrng(strng) {
    alert(pat.test(strng));
    }
    var strng1 = "1111111111111";
    var strng2 = "-------------";
    var strng3 = "1-1-1-1-1-1-1";
    var pat = /[\d-]{13}/;
    checkStrng(strng1);
    checkStrng(strng2);
    checkStrng(strng3);
    </script>
      

  4.   

    寒。。我们伟大的LZ真是执着呢。
    /^\d|-{13}/
    这个的写法就相当于:开头是数字 或者 里面包括13个-     满足一个就可以。所以就错了。。
      

  5.   

    顺便修正下我写的(刚没仔细看LZ大人的意思,不好意思)。。
    var pat = /[\d-]{13}/;
    改成
    var pat = /^[\d-]{13}$/;