Как проверить, содержит ли строка php только английские буквы и цифры? - PullRequest
47 голосов
/ 19 февраля 2012

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

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

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

Ответы [ 9 ]

79 голосов
/ 19 февраля 2012

Использовать preg_match () .

if (!preg_match('/[^A-Za-z0-9]/', $string)) // '/[^a-z\d]/i' should also work.
{
  // string contains only english letters & digits
}
27 голосов
/ 04 декабря 2012
if(ctype_alnum($string)) {
    echo "String contains only letters and numbers.";
}
else {
    echo "String doesn't contain only letters and numbers.";
}
9 голосов
/ 19 февраля 2012

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

if (preg_match('/[^A-Za-z0-9]+/', $str))
{
  // ok...
}
7 голосов
/ 19 февраля 2012

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

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

}

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

5 голосов
/ 19 февраля 2012
if(preg_match('/[^A-Za-z0-9]+/', $str)) {
    // ...
}
2 голосов
/ 04 ноября 2015

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

function is_english($str)
{
    if (strlen($str) != strlen(utf8_decode($str))) {
        return false;
    } else {
        return true;
    }
}
1 голос
/ 05 апреля 2019
if(preg_match('/^[A-Za-z0-9]+$/i', $string)){ // '/^[A-Z-a-z\d]+$/i' should work also
// $string constains both string and integer
}

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

0 голосов
/ 05 сентября 2018
if (preg_match('/^[\w\s?]+$/si', $string)) {
    // input text is just English or Numeric or space
}
0 голосов
/ 10 октября 2017

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

if (!preg_match('/[^A-Za-z0-9]+/', $string)) {
    // $string contains only English letters and digits
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...