Javascript问题,求高手指点
<html>
<head>
<title></title>
<script type="text/javascript">
function check(id,max)
{
var txt = document.getElementById(id);
var str = txt.value;
var re = new RegExp();
re = /^\w{1,""+max+""}$/;
var next = txt.nextSibling;
var spanObj;
if(next.tagName!="SPAN")
{
if(!re.test(str))
{
spanObj = document.createElement("SPAN");
document.body.insertBefore(spanObj,next);
spanObj.innerHTML = "输入错误";
spanObj.style.color = "red";
}
}
else
{
if(re.test(str))
{
document.body.removeChild(next);
}
}
}
</script>
</head>
<body>
<input type="text" id="a" onblur="check(id,5)"/><br/><br/>
<input type="text" id="b" onblur="check(id,4)"/>
</body>
</html>
正则表达式里的max参数在函数调用时从外面传入,为什么总是不恩能够通过验证呢?
答案:原代码:
var re = new RegExp();
re = /^\w{1,""+max+""}$/;
改为如下代码:
var re = new RegExp("^\w{1,"+max+"}$");
//re = /^\w{1,""+max+""}$/;
原因:
RegExp对象存在变量时,不能用re=/......./的形式。只能用var re = new RegExp(...)的形式.
其他:var re = new RegExp('^\\w{1,'+max+'}$'); 对的,正则表达式有问题 new RegExp("^\w{1,"+max+"}$");
上一个:div1:css+jquery多级菜单,正下方左浮动div2:css+javascript img广告自动播放,子级菜单总在img的后面。
下一个:能帮我看看这段js javascript 代码要如何修改吗?我需要它显示的是中国的北京时间,而现在的这代码不行。