1

我现在的正则表达式是这样的

'/[a-z0-9]{40}/i'

这将匹配任何不包含字母和/或数字的空格的字符串。

如何更改它,使其至少包含至少一个数字和至少一个字母字符,这样如果字符串全是数字或全是字母,它就不会匹配?

谢谢

4

1 回答 1

2
/([:alpha:].*[:digit:]|[:digit:].*[:alpha:])/

这需要一个数字跟随一个字母,或者一个字母跟随一个数字。

从您的原始正则表达式中,您似乎想要强制要求总共 40 个字符。为此,请尝试:

/^(.*[:alpha:].*[:digit:].*|.*[:digit:].*[:alpha:].*){40}$/

注意额外.*的 's。只要有一个字母和一个数字,其他字符可以是任何字符。只要有40个。

如果要避免匹配空格,请将每个替换.*[^[:space:]]*.

于 2012-05-26T03:40:26.147 回答