Intereting Posts
Преобразование существующих PHP / MYSQL / веб-сайтов в родные приложения IOS / Android Каковы правильные кодировки / экранирование / htmlentities, необходимые при отправке данных из js в php, php в mysql и для ответов REST json Сравнение пользовательского IP-файла с содержимым файла .txt Codeigniter бросает ошибку 520 CloudFlare при использовании сеанса Скрыть время в транзакционных письмах с помощью {{var order.getCreatedAtFormated ('' short '')}} Как я могу запросить raw через Eloquent? Предотвращение сеансов для маршрутов в Laravel (пользовательская обработка сеанса по требованию) В чем основное отличие между следующими утверждениями? Данные группы Mysql по времени Строки порядка php mysql PHP-сессии и анализ Выполнить функцию внутри массива PHP: показывает, как долго был изменен файл Процесс сигнализировался сигналом «9», Как реализовать «Режим обслуживания» на уже созданном веб-сайте

Проверить пробелы в начале строки

Мне нужно использовать preg_match чтобы проверить, что только a-z0-9. (включая полную остановку (.)). Я не хочу ничего менять. Моя проблема в том, что она не замечает пробел в начале строки.

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

Что я до сих пор:

 ("/[^a-z0-9.]+$/",$request) 

Благодаря !

Вы можете сделать это без регулярного выражения, используя ltrim'

if(ltrim($request) != $request) { // there was whitespace }

 /^(?!.*\.{2,}.*$)[a-z0-9.]+$/ 

объяснение

 ^ # старт-строка-якорь
 (?! # начать негативный взгляд вперед («позиция, за которой не следует ...»)
   .* # что-нибудь
   \. {2,} # точка, два или более раза
   .* # что-нибудь
   $ # конец строки
 ) # end negative lookahead
 [a-z0-9.] + # az или 0-9 или точка, несколько раз
 $ # end-of-string anchor

Матчи

  • "abc"
  • "abc123"
  • "abc.123"

терпит неудачу

  • " abc"
  • "abc..123"
  • "abc!"
 ("/[^a-z0-9.]/",$request) 

Изменить – я неправильно понял ваш вопрос. Это проверит, есть ли какие-либо не a-z0-9. персонажи.

^ внутри [] отрицает characers (изменения означают «любой символ, кроме этих»)

^ вне [] означает «начало строки» (так же, как $ означает «конец строки»)

Поэтому вам нужно что-то вроде этого:

("/^[a-z0-9.]+$/",$request)

Если вы хотите исключить последовательности точек, но не одиночные точки, вам нужно что-то более сложное:

preg_match('/^([a-z0-9]|(?<!\\.)\\.)+$/', $request);