一尘不染

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

php

我努力了:

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

但我猜我做错了什么。


阅读 1264

收藏
2020-05-29

共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_]+$/
2020-05-29