<input name="username" value="" length="12" maxlengthd="12"/>
数据库里面username vachar2(12)
这个输入框要求用JAVASCRIPT去验证不能超过12个数字或英文或数字英文组合,还要求不能超过6个汉字,还要验证汉字和字母,数字的组合
如:用户名1999(就可以),麦克斯韦1999(就不行)
因为数据库里面要求的长度是12,一个汉字就占两个,但是在页面可以输入12个汉字
请用JAVASCRIPT写出你的解决方案?
数据库里面username vachar2(12)
这个输入框要求用JAVASCRIPT去验证不能超过12个数字或英文或数字英文组合,还要求不能超过6个汉字,还要验证汉字和字母,数字的组合
如:用户名1999(就可以),麦克斯韦1999(就不行)
因为数据库里面要求的长度是12,一个汉字就占两个,但是在页面可以输入12个汉字
请用JAVASCRIPT写出你的解决方案?
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
输入待测字串: <input type="text" onblur="test(this.value);">
</html>
<script language="javascript">
<!--
//测试匹配情况
function test(inputVal)
{
//去除首尾空格
inputValinputVal = inputVal.replace(/^\s*|\s*$/g,"");
//零长字串不作处理
if ( inputVal.length == 0 )
{
return;
}
//只能匹配数字,字母或汉字
var _match = inputVal.match(/^[a-zA-Z0-9\u4e00-\u9fa5]+$/g);
//匹配数字或字母(包括大小写)
var codeMatch = inputVal.match(/[a-zA-Z0-9]/g);
//匹配汉字
var charMatch = inputVal.match(/[\u4e00-\u9fa5]/g);
//数字或字母个数
var codeNum = codeMatch ? codeMatch.length : 0;
//汉字个数
var charNum = charMatch ? charMatch.length : 0;
//成功
if ( _match && codeNum + 2*charNum <= 12 )
{
alert("输入正确!");
return;
}
//失败
alert("输入错误!");
}
//-->
</script>