[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с регуляркой, ограничивающей длину слова
Миша
Помогите с регуляркой, ограничивающей длину слова в тексте. Например через форму весельчак отправляет текст без пробелов, в результате - сайт уезжает.

Как правильно написать регулярку, что допускается любой текст и символы, но длина слова не должна превышать 40 символов?

_____________
Принимаю заказы, писать в ЛС
Invis1ble
такая задача решается на уровне CSS, а не регулярками
overflow
word-break

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Миша
Цитата (Invis1ble @ 29.03.2015 - 17:51)
такая задача решается на уровне CSS, а не регулярками
overflow
word-break

И всё-же, даже если решить этот вопрос - на 95 % можно сказать, что этот материал будет не информативен и не нужен пользователям - Значит нужно отсеять, кто подскажет.

_____________
Принимаю заказы, писать в ЛС
Kusss
strlen ?
Миша
Цитата (Kusss @ 29.03.2015 - 19:27)
strlen ?

Нет, не длина строки,

а длина одного слова(символов) без пробелов в этой строке

_____________
Принимаю заказы, писать в ЛС
S.Chushkin
Что-то вроде:
/[^\s]{41,}/u

Должно найти последовательность НЕпробельных символов длиной в 41 символ или больше.

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
Invis1ble
^\s можно заменить на \S

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

volter9
Медведь
Варианты S.Chushkin + Invis1ble:
$text = 'dasdashdjkashdjk 
ashdjkahsjkdhajksdhaskjdhakjshdjkashdjkashdjakshdjakshdjakshdjkashdjkasdhjasdhajskd
hajksdhasjkdhasjkdhjakshd jksahdjkasdhajkshd asjkdhasjkd ajskdhasdjksahdkjashd
вфрыволфырволфыровлфырвофырв
олфырволфырволфырволфыроврфыолврфыолврфоылрволфырволрфыолврфолывролфврфоылвр
олфырволфырволфырволфырв офлывроыфлврыофлврофлыврыфолврыфолврфолыврфоылвролфыврыфолврфылвор'
;

preg_match_all('/\S{41,}/u', $text, $matches);

var_dump($matches);

array(1) {
[0] =>
array(3) {
[0] =>
string(83) "ashdjkahsjkdhajksdhaskjdhakjshdjkashdjkashdjakshdjakshdjakshdjkashdjkasdhjasdhajskd"
[1] =>
string(152) "олфырволфырволфырволфыроврфыолврфыолврфоылрволфырволрфыолврфолывролфврфоылвр"
[2] =>
string(132) "офлывроыфлврыофлврофлыврыфолврыфолврфолыврфоылвролфыврыфолврфылвор"
}
}


UPD:
Поправил по просьбе S.Chushkin.

_____________
Мой блог
S.Chushkin
Цитата (volter9 @ 29.03.2015 - 21:35)
Варианты S.Chushkin + Invis1ble:

Вы ошиблись в опциях. Исправьте и всё будет работать правильно.


_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
volter9
S.Chushkin
Да к и так работает все правильно. Я забыл флаг 'u' что ли, или что то там еще есть чего я не заметил?

_____________
Мой блог
S.Chushkin
Цитата (volter9 @ 30.03.2015 - 00:03)
S.Chushkin
Да к и так работает все правильно.

так - неправильно wink.gif

Цитата
Я забыл флаг 'u' что ли, или что то там еще есть чего я не заметил?

Ну да. В т.ч. "i" не нужен.

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
volter9
S.Chushkin
Обоснуйте почему так неправильно smile.gif
Я же не знаю это мнение или факт. Было бы полезно не только мне, но и ТС, и может быть еще кому нибудь узнать почему именно так не правильно, а по вашему правильно.

Про 'i' знаю, наверное на автомате добавил. biggrin.gif

_____________
Мой блог
S.Chushkin
Сравните результаты с "u" и без когда subject в unicode и будет понятно почему "так неправильно".

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
S.Chushkin
Цитата (volter9 @ 30.03.2015 - 00:32)
Про 'i' знаю, наверное на автомате добавил. biggrin.gif

Во-во, "автомат наше всё". А потом на форумах некоторые тычут указательными сосисками и орут "Говнокод!". Непорядок.

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.