<form action="abc" method="post" name="myform">
<input type="submit" value="确定" onclick="return check()" /><script language="javascript">
function check() {
var v1 = document.myform.v1.value;
if(v1.length < 6||v1.length>10||v1!="^[A-Za-z0-9]+$") {
window.alert("不符合");
return false;
}

}
目的是要求所输入的长度在6-10个字符之间,并且只能是英文(大小写)数字,我上面写的有什么问题吗请问?
还有,要是要求,所输入的长度在10-20个字符之间,可以为英文,数字,中文,改怎么表示??

解决方案 »

  1.   

    v1!="^[A-Za-z0-9]+$"你这样写是把后面的一串当字符串与v1比较,可以用正则表达式:
    function check() {
    var v1 = document.myform.v1.value;var r = /^[A-Za-z0-9]{6,10}$/; 
    var reg = new RegExp(r);if(!reg.test(v1)) {
    window.alert("不符合");
    return false;
    }
    }
    所输入的长度在10-20个字符之间,可以为英文,数字,中文:
    function check() {
    var v1 = document.myform.v1.value;var r = /^[a-zA-Z0-9\u4E00-\u9FA5]{2,5}$/; 
    var reg = new RegExp(r);if(!reg.test(v1)) {
    window.alert("不符合");
    return false;
    }
    }
      

  2.   

    把上面var r = /^[a-zA-Z0-9\u4E00-\u9FA5]{2,5}$/;  这一行的{2,5}改成{10,20}