regex — имя регулярного выражения php не начинается с пробела

Мне нужно регулярное выражение для моего имени, которое должно содержать A-Za-Z \ s, а не начинаться с пробела.

if (preg_match("/[[[:space:]]A-Za-z\s] | [^(A-Za-z\s)]/",$city  )) {
error
}

но у меня не работает. Мне нужна помощь. Спасибо

1

Решение

preg_match("/^[A-Za-z][A-Za-z\s]*$/", $city)

Это разбивается на:

  1. Совпадение с чем-либо из [A-Za-z]
  2. затем сопоставьте что-нибудь из [A-Za-z\s] как угодно часто.
5

Другие решения

Я бы сделал:

if (preg_match("/^[A-Za-z][A-Za-z\s]+$/", $city)) {
// OK
}
1

По вопросам рекламы [email protected]