Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

if (!preg_match('/[^A-Za-z0-9]/', $string)) // '/[^a-z\d]/i' should also work.
{
  // string contains only english letters & digits
}

Ответ 2

if(ctype_alnum($string)) {
    echo "String contains only letters and numbers.";
}
else {
    echo "String doesn't contain only letters and numbers.";
}

Ответ 3

Вы можете использовать preg_match().

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

Ответ 4

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

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

}

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

Ответ 5

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

Ответ 6

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

function is_english($str)
{
    if (strlen($str) != strlen(utf8_decode($str))) {
        return false;
    } else {
        return true;
    }
}

Ответ 7

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

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

Ответ 8

if (preg_match('/^[\w\s?]+$/si', $string)) {
    // input text is just English or Numeric or space
}

Ответ 9

if(preg_match('/^[A-Za-z0-9]+$/i', $string)){ // '/^[A-Z-a-z\d]+$/i' should work also
// $string constains both string and integer
}

Морковь была не в том месте, поэтому она должна искать все, кроме того, что находится в квадратных скобках. Когда морковь снаружи, она ищет то, что в квадратных скобках.