当前位置:编程学习 > JS >>

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 代码要如何修改吗?我需要它显示的是中国的北京时间,而现在的这代码不行。

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,