日期:2014-05-18  浏览次数:20681 次

JQuery验证中文的问题,懂得朋友帮忙看下.
要求:
昵称可以由小写英文字母、中文、数字组成,
长度4-20个字符。 

$(function(){//检查昵称
$("#txtNickName").blur(function(){
var pattern =/\b^([\u4e00-\u9fa5]|[A-Za-z0-9]){4,20}$\b/;
//这句话写的不对吗为什么验证总是出错那,把[\u4e00-\u9fa5]这个中文验证去掉,验证字母跟数字能通过,说明就是中文验证[\u4e00-\u9fa5]这个出问题了是不该这么写吗?
if(!pattern.test(nickname)){
$("#name\\.info").html("昵称的输入格式不正确");
return;
}

朋友们帮忙看下,会写上面正则的朋友,如果我写的不对,帮忙写下吧 谢谢啦.

------解决方案--------------------
没那么复杂吧,我写了个,试了下OK。

var pattern =/^[\u4e00-\u9fa5A-Za-z0-9]{4,20}$/;

另外,匹配时,一个中文占一个字符长度。
------解决方案--------------------
为什么你的^$开始符和结束符的前面和后面还要加\b呢,我记得js语法应该是这样吧:pattern =/([\u4e00-\u9fa5]
------解决方案--------------------
[A-Za-z0-9]){4,20}/;纯属个人观点