3

我需要一个正则表达式来确保一个字符串至少包含 3 个不同的字符(任何类型)。

例如,aqaqaq 无效,因为它仅由 2 个不同的字符组成。aqwaqa 或 aq3aqa 或 aq!aqa 有效。

这在正则表达式中可能吗?

语言:Javascript / PHP

谢谢

4

1 回答 1

4

您可以使用包含负前瞻的正则表达式:

/(.).*(?!\1)(.).*(?!\1)(?!\2)(.)/

例子:

> regex = /(.).*(?!\1)(.).*(?!\1)(?!\2)(.)/
> regex.exec('abab!aba')
["abab!ab", "a", "!", "b"]
> regex.exec('abababa')
null
于 2012-05-04T08:08:53.700 回答