首页 新闻 会员 周边

js验证表单真实姓名问题。。

0
悬赏园豆:20 [已解决问题] 解决于 2010-05-25 11:18

js验证表单中,真实姓名一般为中文,我怎么能让中文一个字为两个字符。。

这是我的代码:

 

$("#realnamebox").blur(function(){
$("#realname_ok").hide();
   $("#realname_tip").hide();
$("#realname").removeClass("showtip");
var realnamebox = $.trim($("#realnamebox").val()); 
 if(this.value==""){
$("#realname_error").hide();
 realname_bl=false;
 return false;
 }else if(/[^\u4E00-\u9FA5a-zA-Z]/.test(realnamebox)){
$("#realname_error").html("真实姓名只能输入中文或字母").fadeIn("slow");
 return false;
 }else if(realnamebox.length<5|| realnamebox.length>20){
$("#realname_error").html("合法长度为5~20个字符").fadeIn("slow");
 return false;
  }else{
$("#realname_error").hide();
$("#realname_ok").show();
  realname_bl=true;
  return true;}
 })

$("#realnamebox").blur(function(){$("#realname_ok").hide();    $("#realname_tip").hide();$("#realname").removeClass("showtip");

var realnamebox = $.trim($("#realnamebox").val());   

if(this.value=="")

{$("#realname_error").hide();  realname_bl=false;  return false;  

}else if(/[^\u4E00-\u9FA5a-zA-Z]/.test(realnamebox))

{$("#realname_error").html("真实姓名只能输入中文或字母").fadeIn("slow");  return false;  }else if(realnamebox.length<5|| realnamebox.length>20){$("#realname_error").html("合法长度为5~20个字符").fadeIn("slow");

  return false;   

}else{$("#realname_error").hide();$("#realname_ok").show();   realname_bl=true;   return true;} })

 

问题补充: 那在前端怎么写啊?我设定的是5~20个字符。。。现在一个中文只占一个字符,名字都是3个,或两个。。都不行。。。
web流的主页 web流 | 初学一级 | 园豆:180
提问于:2010-05-21 09:21
< >
分享
最佳答案
0

验证中文姓名正则表达式:^[\u4e00-\u9fa5]{2,4}$

收获园豆:5
Astar | 高人七级 |园豆:40805 | 2010-05-21 12:01
其他回答(1)
0

Astar回答了输入2个或者4个中文字符的正则

不过要想真正实现名称光凭这个还是不成的...比如最简单的,如果填入的名字是脏话,Astar的是可以验证通过的,所以这里需要做更多的限制才可以的。比如第一个字必须为百家姓中的姓,第二个字不可以为一些脏语词,这个都需要做限制的...

另外Astar限制的2到4个中文字也不全,比如少数名族的姓这个就没办法匹配,比如 叶赫拉拉.杏贞 这样子的名字都是没办法匹配的

 

具体的解决办法还需要借助后台程序的...相关资源你可以搜索 SNS 判断中文姓名  相关的 

收获园豆:15
西越泽 | 园豆:10775 (专家六级) | 2010-05-21 13:08
前台和后台肯定要同时验证的,因为浏览器完全可以禁用JS。前台验证是友好的提示帮助用户输入正确的信息,而后台是防止用户恶意提交。
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-05-21 13:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册