免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4463 | 回复: 5
打印 上一主题 下一主题

[正则] js正则表达式[用户名] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-12 01:56 |只看该作者 |倒序浏览
有个判断注册用户名的js正则表达式问题
var patrn = /^(([a-zA-Z0-9]|[_-]){4,20}|[\u4e00-\u9fa5]{2,10})+$/;
由4-20位的大小写英文字母、0-9的数字、下划线“_”、减号“-”或者2-10个汉字组成。

大体上这个可以满足,但回发现如果既有中文,又有字符的话,需要中文满足2个以上,字符4个以上,即(你好ab)是不满足的
而实际应该是满足的,即中文2个就不需要字符一定也要4个的要求了,反过来也一样,

请问该怎么修改

[ 本帖最后由 HonestQiao 于 2006-6-12 08:51 编辑 ]

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
2 [报告]
发表于 2006-06-12 08:52 |只看该作者
先分别匹配出中文和英文,然后再来检查。

论坛徽章:
0
3 [报告]
发表于 2006-06-12 18:24 |只看该作者
怎么个意思?

  1. function validateUsername( str )
  2.                 {               
  3.                         var patrn1 = /^([a-zA-Z0-9]|[_-]){4,20}$/;
  4.                         var patrn2 = /^[\u4e00-\u9fa5]{2,10}$/;
  5.                         if( !patrn1.test( str ) )
  6.                         {       
  7.                                 if ( !patrn2.test( str ) )
  8.                                         return true;
  9.                         }
  10.                 }
复制代码

我这样了还是无法匹配同时有中文和字符的,好象只能要么中文要么字符的,
你帮我设计下把

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
4 [报告]
发表于 2006-06-12 18:59 |只看该作者
你这样子,用了^$,不就表示必须了么?
肯定不行的啊。

说了,先把字符串的中文和非中文给匹配出来,然后对比。

论坛徽章:
0
5 [报告]
发表于 2008-07-23 10:53 |只看该作者
function userIsOk(ssn)
{
    var re = /^([a-zA-Z0-9]|[_-]|[@])+$/;
    if (re.test(ssn))
    {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (ssn.length < 4 || ssn.length > 20)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;var re = /^(([\u4e00-\u9fa5]|[@]){2,10})+$/;
&nbsp;&nbsp;&nbsp;&nbsp;if (re.test(ssn))
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;var re = /^((([a-zA-Z0-9]|[_-]|[@])|([\u4e00-\u9fa5]|[@])){2,10})+$/;
&nbsp;&nbsp;&nbsp;&nbsp;if (re.test(ssn))
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;return false;
}


慧佳生活网 学问库

[ 本帖最后由 hoojar 于 2008-7-23 11:26 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2008-07-23 11:57 |只看该作者
//判断用户名是否符合标准

function userIsOk(ssn)
{
&nbsp;&nbsp;&nbsp;&nbsp;var re = /^[a-zA-Z\d_\-@\.]+$/;
&nbsp;&nbsp;&nbsp;&nbsp;if (re.test(ssn))
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (ssn.length < 4 || ssn.length > 20)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;var re = /^(([a-zA-Z\d_\-@\.]|[\u4e00-\u9fa5]){2,10})+$/;
&nbsp;&nbsp;&nbsp;&nbsp;if (re.test(ssn))
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;return false;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP