PHP中使用preg_match()匹配时,点号与横线怎么处理? 20

我写了一个匹配只能包含数字,大小写英文,点,下划线,中划线和加号内容的正则表达式,但是里面的"-"似乎不起作用,请问哪里写错了?代码如下:$user_check=preg... 我写了一个匹配只能包含数字,大小写英文,点,下划线,中划线和加号内容的正则表达式,但是里面的"-" 似乎不起作用,请问哪里写错了?
代码如下:
$user_check = preg_match("/^[0-9a-zA-Z_.-]+$/", $user);
if($user_check == 0)
{
$return_value = false;
}
else
{
$return_value = true;
}
return $return_value;

此时当$user 里包含“-” 的时候,会被判定为false。
请教高手,请问是哪里写错了?
展开
 我来答
jiangxibaiyi
2013-07-28 · 跟随风去旅行-伤心的歌
jiangxibaiyi
采纳数:3973 获赞数:14411

向TA提问 私信TA
展开全部
中横杆在本身就属于正则 的一个语法
比如
A-Z表示从A到Z,而你要直接这个符号,那就应该用反斜杠转义一下
\-这样,
个人看法啊!

其实你上面的代码似乎可以简化一下

return preg_match("/^[0-9a-zA-Z_\.\-]+$/", $user) ? true : false;
这样岂不是简单明了
B2K1bonPplR
2013-07-28 · TA获得超过2048个赞
知道小有建树答主
回答量:1156
采纳率:72%
帮助的人:378万
展开全部
preg_match("/^[-0-9a-zA-Z_.]+$/", $user);
-,只表示需要匹配的字符需要放在字符组中第一个位置。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bd200940
2013-07-29
知道答主
回答量:26
采纳率:0%
帮助的人:13.7万
展开全部
中划线写成"\-",前面加一斜杆
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
太仓人才网阳光版
2013-07-29 · TA获得超过651个赞
知道小有建树答主
回答量:362
采纳率:60%
帮助的人:136万
展开全部
点号和横线属于正则保留字符,需要使用转义符!比如 . 要用 \. 代替,就是前面加上\
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式