用JS如何验证用户输入的用户名只能是汉字并且在2-4位之间

如题所述

function checkname(val){

reg = /^[\u4E00-\u9FA5]{2,4}$/;

if(!reg.test(val)){

document.getElementById('t').innerHTML = '不符合标准!';

}else{

document.getElementById('t').innerHTML = '符合标准!';

}

}

用正则的方式验证输入框的内容是2-4位的汉字。

扩展资料:

^:匹配输入字符串的开始位置。

$:匹配输入字符串的结尾位置。

[\u4e00-\u9fa5]:匹配一个汉字的范围。

{n,m}:m和n均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。    

[\u4E00-\u9FA5]{2,4}:表示2-4位汉字。

test():检测指定字符串是否存在返回一个布尔值

!reg.test(val):表示val匹配上reg,表达式为false,否则为true。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-15
<body>

<input type="text" id="v" value="" />

<input type="button" value="验证" onclick="rr(document.getElementById('v').value)">

<span id="t" style="color:#ff0000"></span>

<script>

function rr(val){

 reg = /^[\u4E00-\u9FA5]{2,4}$/;

 if(!reg.test(val)){

  document.getElementById('t').innerHTML = '不符合标准!';

 }else{

  document.getElementById('t').innerHTML = '符合标准!';

 }

}

</script>

</body>

给你写好了,测试一下吧,望采纳!

追问

谢谢大哥的关注,你这个代码我拿来测试没有反应呀?我对这些不了解,还请指教!

追答

我都测了,好用啊!管理都推荐了,绝对好用

本回答被提问者和网友采纳
第2个回答  2013-06-07
([\u4e00-\u9fa5]{2,4})

这是2-4个汉字的正则表达式,如果正则表达式不太会用在问我追问

谢谢大哥的帮助,我是个新手,对正则表达式不了解,更不知道怎么用了,还请多多指教!

第3个回答  2013-06-07
 var str=document.getElementById("username").value; 
 var reg = /^[\u4e00-\u9fa5]{2,4}$/i; 
 if (!reg.test(str)) 
 {
  alert("请输入2-4个汉字!"); 
  }

追问

请问你这个函数怎么调用呀?是的表单中加 onBlur 事件还是在按钮上加单击事件?调用时需要传参数吗?新手上阵,多多指教!

相似回答