菜鸟求....ASP问题

来源:百度知道 编辑:UC知道 时间:2024/05/05 08:54:59
switch( isUsername( username ) )
{
case 0: break;
case 1:
{
changeUsernamePrompt( "您选择的用户名‘"+username+"’格式不正确,用户名不能以数字开头" );
return;
}
case 2:
{
changeUsernamePrompt( "您选择的用户名‘"+username+"’字符长度有误,合法长度为2-20个字符" );
return;
}
case 3:
{
changeUsernamePrompt( "您选择的用户名‘"+username+"’含有非法字符,用户名只能包含_,英文字母,数字" );
return;
}
case 4:
{
changeUsernamePrompt( "您选择的用户名‘"+username+"’格式不正确,用户名只能包含_,英文字母,数字" );
return;
}
---------------------------------------------------------
function isUsername( username )
{
if(! /^\d.*$/g.test( username ) )
{
return 1;
}
if(! /^.{2,20}$/g.test( username ) )
{
return 2;
}
if(! /^[\w_]*$/g.test( username ) )
{
return 6;
}
if( !/^([a-z]|[A-Z])[\w_]{4,19}$/

if(! /^.{2,20}$/g.test( username ) )

这是正则表达式, 其中的正则表达式部分是:

/^.{2,20}$/g

这个式子, 匹配的是2-20个任意字符.

所以, 这个判断语句的意思是:

“如果不是2至20个字符”

---------
至于正则表达式,可以查阅一些相关资料,这里我把这句的含义分析一下:

/^.{2,20}$/g

两个斜杠之间的部分即为匹配符,最后的g是指全局匹配。
斜杠之间部分:
^ 匹配字符串的起点
. 匹配任意字符
{2,20} 指2-20个
$ 匹配字符串的终点

所以这句的含义是:
从开始至结束,是2-20个任意字符,则匹配成立。

例如:
aslkwifj, 2092jr88223##2k 都是对的
而 B 不匹配(少于2个)