PHP - 正则表达式,仅允许字母和数字

2022-08-30 10:21:05

我试过:

preg_match("/^[a-zA-Z0-9]", $value)

但我做错了什么,我猜。


答案 1

1. 使用 PHP 的内置ctype_alnum

你不需要为此使用正则表达式,PHP有一个内置的函数,可以为你做到这一点,并且执行得更快:ctype_alnum

<?php
$strings = array('AbCd1zyZ9', 'foo!#$bar');
foreach ($strings as $testcase) {
    if (ctype_alnum($testcase)) {
        echo "The string $testcase consists of all letters or digits.\n";
    } else {
        echo "The string $testcase does not consist of all letters or digits.\n";
    }
}
?>

2. 或者,使用正则表达式

如果您迫切地想要使用正则表达式,则有几个选择。

首先:

preg_match('/^[\w]+$/', $string);

\w包含多个字母数字(它包括下划线),但包括所有 .\d

或者:

/^[a-zA-Z\d]+$/

甚至只是:

/^[^\W_]+$/

答案 2

您省略了(模式分隔符)和(匹配结束字符串)。/$

preg_match("/^[a-zA-Z0-9]+$/", $value)

推荐