PHP正则表达,汉字大小写字母数字下划线以及@符号

我想弄这个正则只是想让用户名这个字段支持汉字,大小写字母,手机号,邮箱,拒绝其它的字符

越简单越好。
-------------------------------------------------------------------------
[\u4E00-\u9FA50-9a-zA-Z_@]+$
-------------------------------------------------------------------------
以上写法不知对不对

邮箱的正则表达式为:/^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$/,其他的一楼已经回答得很完备了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-20
匹配中文:[\u4e00-\u9fa5]

英文字母:[a-zA-Z]

数字:[0-9]

匹配中文,英文字母和数字及_:

^[\u4e00-\u9fa5_a-zA-Z0-9]+$

同时判断输入长度:
[\u4e00-\u9fa5_a-zA-Z0-9_]{4,10}

^[\w\u4E00-\u9FA5\uF900-\uFA2D]*$ 1、一个正则表达式,只含有汉字、数字、字母、下划线不能以下划线开头和结尾:
^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$
其中:
^
与字符串开始的地方匹配
(?!_)  不能以_开头
(?!.*?_$)  不能以_结尾
[a-zA-Z0-9_\u4e00-\u9fa5]+  至少一个汉字、数字、字母、下划线
$  与字符串结束的地方匹配

放在程序里前面加@,否则需要\\进行转义
@"^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$"
(或者:@"^(?!_)\w*(?<!_)$" 或者
@" ^[\u4E00-\u9FA50-9a-zA-Z_]+$ "
)

2、只含有汉字、数字、字母、下划线,下划线位置不限:
^[a-zA-Z0-9_\u4e00-\u9fa5]+$

3、由数字、26个英文字母或者下划线组成的字符串
^\w+$

4、2~4个汉字
@"^[\u4E00-\u9FA5]{2,4}$";

5、
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$

用:(Abc)+
来分析: XYZAbcAbcAbcXYZAbcAb

XYZAbcAbcAbcXYZAbcAb6、
[^\u4E00-\u9FA50-9a-zA-Z_]
34555#5'
-->34555#5'

[\u4E00-\u9FA50-9a-zA-Z_]
eiieng_89_ ---> eiieng_89_
_';'eiieng_88&*9_ -->
_';'eiieng_88&*9_
_';'eiieng_88_&*9_ -->
_';'eiieng_88_&*9_

public bool RegexName(string
str)
{
bool
flag=Regex.IsMatch(str,@"^[a-zA-Z0-9_\u4e00-\u9fa5]+$");
return
flag;
}

Regex reg=new Regex("^[a-zA-Z_0-9]+$");

if(reg.IsMatch(s))
{
\\符合规则
}
else
{

\\存在非法字符

}

最长不得超过7个汉字,或14个字节(数字,字母和下划线)正则表达式
^[\u4e00-\u9fa5]{1,7}$|^[\dA-Za-z_]{1,14}$追问

我想判断用户名是否属性手机号,这样写对不对
if (ereg("^1[3458]\d{9}$",$username)){
echo "手机号";}else{
echo "不是手机号";}

相似回答