zx_bing

人生路漫漫,多学些知识总是有益处的
随笔 - 32, 文章 - 0, 评论 - 0, 引用 - 0
数据加载中……

输入框要求用JAVASCRIPT去验证不能超过12个数字或英文或数字英文组合,还要求不能超过6个汉字,还要验证汉字和字母,数字的组合

<input name="username" value="" length="12" maxlengthd="12"/>
数据库里面username vachar2(12)

这个输入框要求用JAVASCRIPT去验证不能超过12个数字或英文或数字英文组合,还要求不能超过6个汉字,还要验证汉字和字母,数字的组合

如:用户名1999(就可以),麦克斯韦1999(就不行)

因为数据库里面要求的长度是12,一个汉字就占两个,但是在页面可以输入12个汉字
请用JAVASCRIPT写出你的解决方案?



Js代码 复制代码 收藏代码
  1. <html>   
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">   
  3. 输入待测字串: &nbsp;<input type="text" onblur="test(this.value);">   
  4. </html>   
  5. <script language="javascript">   
  6. <!--    
  7. //测试匹配情况    
  8. function test(inputVal)    
  9. {    
  10.     //去除首尾空格    
  11.     inputValinputVal = inputVal.replace(/^\s*|\s*$/g,"");    
  12.     //零长字串不作处理    
  13.     if ( inputVal.length == 0 )    
  14.     {    
  15.         return;    
  16.     }    
  17.     //只能匹配数字,字母或汉字    
  18.     var _match = inputVal.match(/^[a-zA-Z0-9\u4e00-\u9fa5]+$/g);    
  19.     //匹配数字或字母(包括大小写)    
  20.     var codeMatch = inputVal.match(/[a-zA-Z0-9]/g);    
  21.     //匹配汉字    
  22.     var charMatch = inputVal.match(/[\u4e00-\u9fa5]/g);    
  23.     //数字或字母个数    
  24.     var codeNum = codeMatch ? codeMatch.length : 0;    
  25.     //汉字个数    
  26.     var charNum = charMatch ? charMatch.length : 0;    
  27.     //成功    
  28.     if ( _match && codeNum + 2*charNum <= 12 )    
  29.     {    
  30.         alert("输入正确!");    
  31.         return;    
  32.     }    
  33.     //失败    
  34.     alert("输入错误!");     
  35. }    
  36. //-->   
  37. </script> 

posted on 2012-07-27 14:06 zx_bing 阅读(525) 评论(0)  编辑  收藏 所属分类: js