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函数试试