日期:2014-05-19  浏览次数:20828 次

一个正则表达式的问题,急!!!
验证用户名是否合法:
JS中的正则表达式函数哪个可以实现检验用户名是否符合一个正则表达?
我的用户名要求4-18个字符或2-9个汉字,我用C#写的正则表达式是:^([a-zA-Z][a-zA-Z0-9_\.]{2,16}[a-zA-Z0-9])|([\u4E00-\u9FA5]{2,9})$

我想用JS的正则表达式函数检验这个用户名是否符合上面的正则表示式,但不知道哪个JS函数可以实现.最好这个函数可以返回true或者false.这样我就可以在客户端实现检验了.
谢谢高手的指教,很急!!!


------解决方案--------------------
s = "xxxx ";
if(s.match(/^([a-zA-Z][a-zA-Z0-9_\.]{2,16}[a-zA-Z0-9])|([\u4E00-\u9FA5]{2,9})$/)==null) alert( "error ");
else alert( "ok ");
------解决方案--------------------
按楼上的回答,就是要么全字符,要么全汉字了,可能这个不符合要求吧。
------解决方案--------------------
<script language=javascript>
s = "xxxs1111111111111 ";
if(s.match(/^(([a-z0-9\_]{4,18})|([\u4E00-\u9FA5]{2,9}))$/ig)) alert( "ok ");
else alert( "error ");
</script>

------解决方案--------------------
var reg = /(^\w{4,18}\s*$)|(^[\u4E00-\u9FA5]{2,9}\s*$)/;
if(!reg.test(s))
alert( 'error ');

不知道你对字符有什么要求,这里就给你设成a-zA-Z0-9了
s为被验证的用户名
------解决方案--------------------
qf521lx() ( ) 信誉:100 Blog 加为好友 2007-07-10 00:00:40 得分: 0


var reg = /(^\w{4,18}\s*$)|(^[\u4E00-\u9FA5]{2,9}\s*$)/;
if(!reg.test(s))
alert( 'error ');

不知道你对字符有什么要求,这里就给你设成a-zA-Z0-9了
s为被验证的用户名

---------------------------------

用正则表达式.test(string)方法就可以,但是提醒LZ,用户名一般都不能以数字开头的,不知道你的用户名是否有特殊需求,允许以数字开头。

------解决方案--------------------
lz是不区分大小写的,汉字单独使用
这样在规则判断前最好先处理下,把用户名全部大写或者小写转换下。我定小写转换后规则式为:
^([a-z][a-z0-9_\.]{2,16}[a-z0-9])|([\u4E00-\u9FA5]{2,9})$

------解决方案--------------------
可以将正则表达式分开来写吗?
------解决方案--------------------
var oRegex = new RegExp( '^([a-zA-Z][a-zA-Z0-9_\.]{4,18}[a-zA-Z0-9])|([\u4E00-\u9FA5]{2,9})$ ', "i ") ;
var valuem= "scads ";
if(oRegex.exec(valuem))
{
alert( "true! ");
}
else
{
alert( "false ");
}