我正在尝试制作一个regex,它允许输入至少包括一个数字和至少一个字母(无论大小写),而不允许其他任何内容。以下是我的想法:
<?php
if (preg_match('/(?=.*[a-z]+)(?=.*[0-9]+)([^'W])/i',$code)) {
echo "=)";
} else {
echo "=(";
}
?>
如果我只使用数字或字母,它会给出false,而如果我添加$或#或任何其他非字母数字符号,它就会给出true。现在,我尝试将^''W放入a-z和0-9的类括号中,并尝试使用类似于?=的东西*[^''W]或?>!但我就是做不到。在非字母数字中键入仍然会得到true。Halp meeee
您需要使用锚点,以便它与整个字符串匹配。
^(?=.*[a-z]+)(?=.*[0-9]+)('w+)$
既然使用php,为什么还要使用regex呢。您可以使用ctype_alnum()
http://php.net/manual/en/function.ctype-alnum.php