[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подскажите правильно или нет
baton82
'#^[a-zа-яё\ ]+$#uxi'

Подскажите правильно ли составил регулярку
В этом выражении проверяется строка от начала до конца, в строке разрешены только буквы латинского и русского алфавита, в строке может использоваться пробел, регистр символов в строке не имеет значения, ну и в кодировке utf_8



Спустя 30 минут, 26 секунд (2.09.2011 - 15:59) Mirexzpalich написал(а):

'#^[a-zа-яё\s]+$#ui'

А что за X?

Спустя 4 минуты, 17 секунд (2.09.2011 - 16:03) moskitos80 написал(а):
Шаблон по ходу правильный... а в чём дело запусти и проверь.

Цитата (Mirexzpalich @ 2.09.2011 - 12:59)
<pre class="sh_sourceCode" rel="php">
<span class="sh_string">'#^[a-zа-яё\s]+$#ui'</span>
</pre>
А что за X?

Откуда то из справочников:

модификатор "х" - пробельные символы в патэрне игнорируются, кроме тех случаев, когда они заменяются (escape), или когда находятся внутри класса символов, а символы между незаменёнными/unescaped # вне класса символов и следующий символ newline, включительно, также игнорируются. Это эквивалентно Perl-модификатору /x и даёт возможность включать комментарии внутрь сложных патэрнов. Заметьте, однако, что это применимо только символьным данным. Пробельные символы никогда не могут появляться внутри последовательностей специальных символов в патэрне, например, внутри последовательности (?(, которая вводит условный субпатэрн.

Спустя 31 минута, 20 секунд (2.09.2011 - 16:35) Invis1ble написал(а):
baton82
Цитата
'#^[a-zа-яё\ ]+$#uxi'

слеш зачем? вроде как пробел - не спецсимвол... x не нужен. Я бы написал так
#^[\pL ]+$#u

хотя тут подойдут не только кириллица и латинница, но и другие буквы

Спустя 15 минут, 14 секунд (2.09.2011 - 16:50) moskitos80 написал(а):
Цитата (Invis1ble @ 2.09.2011 - 13:35)
Я бы написал так
#^[\pL ]+$#u

Вот теперь подробнее пожалуйста, что это: \pL

Спустя 28 минут, 10 секунд (2.09.2011 - 17:18) Invis1ble написал(а):
moskitos80
отвечу цитатой из книги Дж.Фридла "Регулярные выражения"
Цитата
Даже в режиме использования кодировки UTF 8 (с модификатором
u) метасимволы границ слов и символьные классы, такие как \w,
работают только с ASCII символами. В случае необходимости рабо
тать с полным диапазоном символов Юникода вместо \w следует
пользоваться конструкцией \pL, вместо \d – конструкци
ей \pN, а вместо \s – конструкцией \pZ.

\pL - это сокращенная версия \p{L}. p - свойство, L - атрибут

Спустя 11 минут, 42 секунды (2.09.2011 - 17:30) baton82 написал(а):
И всётаки как правильно, для того чтобы разрешить только русские, латинские буквы и пробел
Так
'#^[a-zа-яё\ ]+$#uxi'

или так
'#^[a-zа-яё\s]+$#ui'

Спустя 6 минут, 9 секунд (2.09.2011 - 17:36) Invis1ble написал(а):
Я же тебе уже написал, что слеш и модификатор x не нужен
#^[a-zа-яё ]+$#ui

Спустя 12 минут, 2 секунды (2.09.2011 - 17:48) baton82 написал(а):
Цитата (Invis1ble @ 2.09.2011 - 14:36)
Я же тебе уже написал, что слеш и модификатор x не нужен
#^[a-zа-яё ]+$#ui

Спасибо, я попробовал все и все работают вот и отсюда возник вопрос

Спустя 5 часов, 53 минуты, 6 секунд (2.09.2011 - 23:41) Mirexzpalich написал(а):
moskitos80
Спасибо за справочку
Быстрый ответ:

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