'#^[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
Спасибо за справочку
Спасибо за справочку