Как проверить начало строки с проверки символов - PullRequest
0 голосов
/ 25 апреля 2018

Мне нужно поставить подтверждение, что Имя не должно начинаться с пробела,.или _

После ввода имени, затем после того, как вы можете добавить.

Valid :
My Name
My.Name
My_Name

In Valid:
 My Name
_My Name
.My Name

Я сделал функцию

  function validName($name) {

    $name_first_character = substr($name, 0, 1);

    if ($name_first_character == '.' || $name_first_character == '-') {
      return FALSE;
    }
    return TRUE;
  }

Но все равно он не проверяет пробел.Нужно ли делать с preg_match?

Ответы [ 3 ]

0 голосов
/ 25 апреля 2018

вместо проверки того, что вы не хотите, как насчет проверки того, что вы хотите

 function validName($name) {

  $name_first_character = substr($name, 0, 1);

   if (ctype_alpha($name_first_character)) { 
       return TRUE;
    }else{
       return FALSE;
    }

 }
0 голосов
/ 25 апреля 2018

Регулярное выражение, вероятно, будет проще. Вам не хватает некоторых персонажей, которых вы не хотите разрешать. Также было бы легче написать это с in_array.

if (in_array($name_first_character, array('.', '-', ' ', '_'))) {
    return FALSE;
}

Демо: https://3v4l.org/SGM4T

Регулярное выражение может быть:

if (preg_match('/^[-._ ]/', $name)) {
    return FALSE;
}

Демо: https://3v4l.org/cu6vi

Пробел в классе символов можно заменить на \s, если вы хотите запретить любой тип пробела.

^ начало строки
[] создает класс символов и допускает любой 1 из символов внутри него. Если используется -, а не в начале или в конце, это создаст диапазон. Например, 1-9 будет числами от 1 до 9.

0 голосов
/ 25 апреля 2018

Чтобы проверить место, вы можете обрезать строку и сравнить, если у вас все еще есть та же переменная.Что-то вроде бы проверяет наличие начальных / конечных пробелов

$temp  = $text
$trimmed = trim($temp);
return $temp == $text
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...