<script src="js/jquery-1.7.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(function () {
        $(".pd").blur(function () {
            var txt = $(this).val();
            var reg = /^\d{1}$/;
            if (!reg.test(txt)) {
                $(this).val("");
            }        });
    })
</script> <form id="form1" runat="server">
    <div>
        <input type="text" class="pd" />
    </div>
    </form>  这样的正则是可行的  但是我想写个公用的正则方法  正则公式我直接绑定在input标签里面了 却不行了   不知道是哪里出错了  请指点! 以下是出错代码
<script src="js/jquery-1.7.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(function () {
        $(".pd").blur(function () {
            var txt = $(this).val();
            //var reg = $(this).attr("rg");
            if (!reg.test(txt)) {
                $(this).val("");
            }
            else {
                alert(1);
            }        });
    })
</script><div>
        <input type="text" class="pd" rg="/^\d{1}$/" />
        <input type="text" class="pd" rg='/^\d{1}\w$/' />
        <input type="text" class="pd" rg='/^\d{2}$/' />
        <input type="text" class="pd" rg='/^\d{3}$/' />
    </div>

解决方案 »

  1.   

    <script type="text/javascript">
    function check(){
    var input=document.getElementById("test");
    var reg=input.getAttribute("rg");
    var value=input.value;
    reg=new RegExp(reg);
    alert(reg.test(value));
    }
    </script>
    </head><body>
    <input type="text" rg="^\d{2,3}$" id="test" onblur="check()">
    </body>
    </html>
    类似于这样试试
      

  2.   


     <input type="text" rg="^\d{1}$" id="test" onblur="check()">
            <input type="text" rg="^\d{2}$" id="Text1" onblur="check()">如果我有2个input呢  多个呢 就不行了
      

  3.   

    <title>无标题文档</title>
    <script type="text/javascript">
    function init(){
    var inputs=document.getElementsByTagName("input");
    for(var i=0;i<inputs.length;i++){
    if(inputs[i].type=="text"){
    inputs[i].onblur=check;
    }
    }
    }
    function check(){
    var reg=this.getAttribute("rg");
    var value=this.value;
    reg=new RegExp(reg);
    alert(reg.test(value));
    }
    window.onload=init;
    </script>
    </head><body>
    <input type="text" rg="^\d{2,3}$" >
    <input type="text" rg="^[a-z]{4}$" >
    <input type="text" rg="^[A-Z]{3}$" >
    </body>
    </html>
      

  4.   

     <input type="text" rg="^\d{2,3}$" >
            <input type="text" rg="^[a-z]{4}$" >
            <input type="text" rg="^[A-Z]{3}$" >
            <input type="text" />这样就不行了  我那个html:<input type="text" rg="^[a-z]{4}$" >
    这样的东西是实时生成的  
    这样可以吗?  是不是生成一次 要init()一下  岂不是很麻烦
      

  5.   

    你在生成时指定onblur触发check函数试试
      

  6.   

        <title></title>
        <script src="../JS/jquery-1.4.1.min.js" type="text/javascript"></script>
        <script type="text/javascript">
            $(function () {
                $("#btn_add").click(function () {
                    $("#aa").append("<input type='text' rg='^\d{2,3}$'  />");
                    init();
                });
                function init() {
                    var inputs = document.getElementsByTagName("input");
                    for (var i = 0; i < inputs.length; i++) {
                        if (inputs[i].type == "text" && inputs[i].getAttribute("rg") != null) {
                            inputs[i].onblur = check;
                        }
                    }
                }
                function check() {
                    var reg = this.getAttribute("rg");
                    var value = this.value;
                    reg = new RegExp(reg);
                    alert(reg.test(value));
                }            window.onload = init;
            });       
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <input type="text" rg="^\d{2,3}$" />
            <input type="text" rg="^[a-z]{4}$" />
            <input type="text" rg="^[A-Z]{3}$" />
            <input type="text" />
            <div id="aa">
            </div>
            <input type="button" id="btn_add" />
        </div>
        </form>
    </body>
    </html>
    这个怎么解释呢