it-roy-ru.com

Как проверить, содержит ли строка php только английские буквы и цифры?

В JS я использовал этот код:

if(string.match(/[^A-Za-z0-9]+/))

но я не знаю, как это сделать в PHP.

44
Danny Fox

Используйте preg_match () .

if (!preg_match('/[^A-Za-z0-9]/', $string)) // '/[^a-z\d]/i' should also work.
{
  // string contains only english letters & digits
}
74
Frosty Z
if(ctype_alnum($string)) {
    echo "String contains only letters and numbers.";
}
else {
    echo "String doesn't contain only letters and numbers.";
}
25
vineeth

Вы можете использовать preg_match () функцию, например.

if (preg_match('/[^A-Za-z0-9]+/', $str))
{
  // ok...
}
9
evilone

Посмотрите на это ярлык

if(!preg_match('/[^\W_ ] /',$string)) {

}

class [^\W_] соответствует любая буква или цифра но не подчеркивание. И обратите внимание на символ !. Это избавит вас от сканирования всего пользовательского ввода. 

6
kushalvm
if(preg_match('/[^A-Za-z0-9]+/', $str)) {
    // ...
}
5
Vitamin

если вам нужно проверить, если это английский или нет. Вы могли бы использовать ниже функцию. может помочь кому-то ..

function is_english($str)
{
    if (strlen($str) != strlen(utf8_decode($str))) {
        return false;
    } else {
        return true;
    }
}
2
shakee93
if (preg_match('/^[\w\s?]+$/si', $string)) {
    // input text is just English or Numeric or space
}
0
Ramin Rabiee

PHP может сравнивать строку с регулярным выражением, используя preg_match(regex, string), например так:

if (!preg_match('/[^A-Za-z0-9]+/', $string)) {
    // $string contains only English letters and digits
}
0
Saurabh