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_]+$/