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

js的正则问题
HTML code


<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标签里面了 却不行了 不知道是哪里出错了 请指点! 以下是出错代码

HTML code

<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>



------解决方案--------------------
<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>
类似于这样试试
------解决方案--------------------
<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>
------解决方案--------------------
你在生成时指定onblur触发check函数试试