PHP,Regex-如何禁止非字母数字字符


PHP, Regex - how to disallow non-alphanumeric characters

我正在尝试制作一个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