javascript-有没有完善的过滤QQ号的代码(JS或PHP)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-有没有完善的过滤QQ号的代码(JS或PHP),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1779字,纯文字阅读大概需要3分钟。
内容图文
1.过滤正常QQ号 (QQ:8141334)2.忽略网址中出现的数字串如:http://bangpai.taobao.com/group/thread/16151013-290178703.htm
如果能做到过 滤特殊QQ号 ( ⑧①④①③③④ 、八一四一三三四)
就更好了
回复内容:
1.过滤正常QQ号 (QQ:8141334)
2.忽略网址中出现的数字串如:http://bangpai.taobao.com/group/thread/16151013-290178703.htm
如果能做到过 滤特殊QQ号 ( ⑧①④①③③④ 、八一四一三三四)
就更好了
思路:
- 先用正则替换,把所有的网址从原文本中删除
- 然后再查找5位以上的连续数字就好了。
至于过滤特殊qq号,我认为是白费心机。Unicode的神奇是很多人经常低估的:
- 普普通通的一个数字,例如9就能整出
9九玖⑨⑼⒐???????㈨九
这么多种写法 - 更不用说1、0之类的还可以用字母I、O、L以及衍生的
??????
等等变体进行混淆 - 混杂复杂的控制字符。你能发现
A?B
这两个字母中间有个零宽度空格吗?
该缴枪投降的时候就投降。明文的qq号够用的时候,就别在对付特殊符号上费尽心机了。
注:即使是对付spam等刚需,过滤汉字词汇也比对抗特殊符号qq有效得多。
是可以过滤,但是不可能没一个都过滤掉。
过滤原理,将里面的一二三四,①②全部替换成数字,再匹配是否是。
思路
class FilterQQ
{
public static function hasQQ($string = '')
{
$string = self::replace($string);
return preg_match('/[1-9]{1}[0-9]{5,12}/', $string) ? true : false;
}
public static function replace($string = '')
{
$arr = array(
'0' => array('0', '零', '〇'),
'1' => array('1', '一', '①'),
'2' => array('2', '二', '②'),
'3' => array('3', '三', '③'),
'4' => array('4', '四', '④'),
'5' => array('5', '五', '⑤'),
'6' => array('6', '六', 'liu'),
'7' => array('7', '七', '⑦'),
'8' => array('8', '八', '⑧'),
'9' => array('9', '久', '九'),
'' => array_unique(explode('|', ',|。|;|‘|’|“|”|+|—|—|||、|~|@|#|¥|%|…')),
);
return str_replace(array_values($arr), array_keys($arr), $string);
}
}
//使用方法
$string = '阿什顿发送的发生的发生的放啊啊';
var_dump( FilterQQ::hasQQ($string));
用正则表达式
内容总结
以上是互联网集市为您收集整理的javascript-有没有完善的过滤QQ号的代码(JS或PHP)全部内容,希望文章能够帮你解决javascript-有没有完善的过滤QQ号的代码(JS或PHP)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。