Ответ 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_]+$/