我想检测用户选择的 pin 是否包含 4 个相同的数字,例如 1111 或 2222。我在 PHP 中使用 preg_match。
我怎样才能调整这个答案来做到这一点?
你可以使用这个正则表达式:
/(\d)\1{3}/
这匹配一个数字(\d)
,然后匹配相同的数字 3 次\1{3}
。
count(array_unique(str_split($pin))) > 1
根据您链接到的答案进行调整:
\b(\d)\1{3}\b
与其使用\1+
它将匹配第一个数字的任意数量的重复,不如将其替换为\1{3}
仅允许第一个数字重复三次,从而在匹配时为您提供所需的四位数字。
或者,如果您愿意:
\b(\d)\1\1\1\b