请问一个PHP检测字符串问题,用于检测账号复杂度

你存在我婶婶的脑海里 2020-03-17 04:27:35

php怎么检测注册账号的复杂程度呢

比如判断: qqqqqq 纯单一字符的 和 qweqwe 123123 这样的叠加形式就不允许注册





还有这种形式的组合是叫什么名字呢,一直想不起来, 叫法是叫叠词还是什么的
...全文
216 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 4 楼 zhouyong80 的回复:

$str = 'qweqweqwe';
for ($i=0; $i < strlen($str); $i++){
$offset = strpos($str, $str[$i], $i + 1);
if ($offset) {
$substr = substr($str, $i, $offset-$i);
$pattern = "/".$substr."/";
if ($substr != ''){
$result = preg_match_all($pattern, $str);
if ($result > 1) {
echo "匹配";
}
}
}
}


哈哈 谢谢你哈
zhouyong80 2020-03-19
  • 打赏
  • 举报
回复

$str = 'qweqweqwe';
for ($i=0; $i < strlen($str); $i++){
	$offset = strpos($str, $str[$i], $i + 1);
	if ($offset) {
		$substr = substr($str, $i, $offset-$i);
		$pattern = "/".$substr."/";
		if ($substr != ''){
			$result = preg_match_all($pattern, $str);
			if ($result > 1) {
				echo "匹配";
			}
		}
	}
}
  • 打赏
  • 举报
回复
引用 1 楼 zhouyong80 的回复:
用正则表达式,"^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*$"表示不能以数字开头,并且必须包含数字和大写字母或小写字母的组合,至于叠词,就不好判断了,应该要写一个循环去判断

正则限制只能字母加数字加下划线的正则我有,判断单一字符的代码我也找到了,就剩一个叠加判断的了。

其实一般网站的账号注册没必要限制那么严格,只是我之前注册别的网站的时候有碰到过叠加限制的,就比较好奇代码怎么实现
zhouyong80 2020-03-17
  • 打赏
  • 举报
回复
用正则表达式,"^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*$"表示不能以数字开头,并且必须包含数字和大写字母或小写字母的组合,至于叠词,就不好判断了,应该要写一个循环去判断

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧