php判断字符串内是否含有特殊字符,但是字符串含有中文就没效果了,请教? 如字符串$a="中国[]"我想判断这个字符串含有特殊字符,但是用ereg输出的是0,我把除了英文字母,数字和中文外的所有字符都是特殊字符 请问如何处理,请写出整句代码,拜托. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 中文使用ASCII码进行验证,楼主可以试一下,本人已试过很多次,刚刚写的代码,是可以的:采用PERL兼容的正则表达式:<?php$chinese=chr(0xa1)."-".chr(0xff);//中文匹配$pattern="/^[a-zA-Z0-9($chinese)]{1,}$/";//加上英文、数字匹配if(preg_match($zimu,"sfsdfsdf6555Ddd送到豆腐速度Fddfs"))//如验证含有中文、数字、英文大小写的字符{echo "不是特殊字符";//验证“sfsdfsdf6555Ddd送到豆腐速度Fddfs”结果是这个}else{echo "是特殊字符";//验证“+++++===|||\\ddfasfd”是这个}楼主试一下。 1楼的朋友,你的发上来的代码是完整的吗,感觉有点不对,自已做了一点修改,发现还字符串有中文时显示“是特殊字符”代码如下:<?php$chinese=chr(0xa1)."-".chr(0xff);//中文匹配$pattern="/^[a-zA-Z0-9($chinese)]{1,}$/";//加上英文、数字匹配if(preg_match($pattern,"sfsdfsdf6555Ddd送到豆腐速度Fddfs"))//如验证含有中文、数字、英文大小写的字符{echo "不是特殊字符";//验证“sfsdfsdf6555Ddd送到豆腐速度Fddfs”结果是这个}else{echo "是特殊字符";//验证“+++++===|||\\ddfasfd”是这个}?>2楼的朋友,我的编码环境是utf-8 楼主在这里使用preg_match时正则颠倒了,使用的pattern应该为匹配特殊符号的pattern,而不是匹配正常字符的pattern所以思路是错误的 <?php$a="中国[]";$regx = '/[^0-9a-zA-Z一-龥]/u';$result = preg_match($regx,$a);if($result){ //存在特殊字符}?> phpmailer 能不能发送动态网页的邮件? PHP 变量为空 有没有必要对PDO进行封装? 关于REQUEST奇怪的问题,请高手帮忙 请问类属性赋值问题 请大家帮忙看看 如何用代码创建数据库并设置权限? 怎么样把text导入数据库 好无聊,分享一个自己写的文本操作的类 怎样得到循环的两个相邻的数值的差 关于正则表达式的问题 关于PHP 导出成EXECL的问题!
$chinese=chr(0xa1)."-".chr(0xff);//中文匹配
$pattern="/^[a-zA-Z0-9($chinese)]{1,}$/";//加上英文、数字匹配
if(preg_match($zimu,"sfsdfsdf6555Ddd送到豆腐速度Fddfs"))//如验证含有中文、数字、英文大小写的字符
{
echo "不是特殊字符";//验证“sfsdfsdf6555Ddd送到豆腐速度Fddfs”结果是这个
}
else
{
echo "是特殊字符";//验证“+++++===|||\\ddfasfd”是这个
}楼主试一下。
<?php
$chinese=chr(0xa1)."-".chr(0xff);//中文匹配
$pattern="/^[a-zA-Z0-9($chinese)]{1,}$/";//加上英文、数字匹配
if(preg_match($pattern,"sfsdfsdf6555Ddd送到豆腐速度Fddfs"))//如验证含有中文、数字、英文大小写的字符
{
echo "不是特殊字符";//验证“sfsdfsdf6555Ddd送到豆腐速度Fddfs”结果是这个
}
else
{
echo "是特殊字符";//验证“+++++===|||\\ddfasfd”是这个
}
?>
2楼的朋友,我的编码环境是utf-8
所以思路是错误的
<?php
$a="中国[]";
$regx = '/[^0-9a-zA-Z一-龥]/u';
$result = preg_match($regx,$a);
if($result){
//存在特殊字符
}
?>