|
|
|
| Пытаюсь реализовать регистрацию где пользователь должен помимо логина вводить еще и свое имя, допускаются английские и русские имена, а так же пробелы и нижние подчеркивание.
Вот код:
if($username=="" || !preg_match("|^[_a-zA-Z0-9а-яА-Я ]+$|", $username))
{
$error[] = "Имя пользователя указано неверно";
}
|
Если написать на английском Alexey, то имя проходит. Если написать на русском Алексей, то выдает ошибку которая указана в error. Из своего наблюдения я обнаружил, что если просто написать Алек, то такое имя пройдет, а буквы с, р, ц, у и еще много других букв не проходит, т.е. часть букв проходит, а часть нет. В чем может быть проблема? | |
|
|
|
|
|
|
|
для: algoritm2
(20.04.2016 в 06:08)
| | У меня сайт использует кодировку UTF-8, а это значить, что эта кодировка работает с символами с кодом меньше 255, а русские буквы в юникоде по крайне мере часть стоят дальше. Если способ это исправить или лучше сделать по другому, так как у меня все равно используются все буквы алфавита как английского так и русского, лучше подскажите как запретить разного рода символов например вот такие \.?,$%# и т.д. | |
|
|
|
|
|
|
|
для: algoritm2
(20.04.2016 в 07:16)
| | смешались в кучу кони люди...
preg_match("|...|u", ... - не? | |
|
|
|
|
|
|
|
для: algoritm2
(20.04.2016 в 06:08)
| | Не знаю, в каком контексте этот скрипт, но надо ещё согласовывать с локалью кодировки страниц сайта и скриптов сервера. | |
|
|
|