Задолбался с ними.
if(!preg_match('|^/[a-zA-Z0-9а-яА-ЯёЁ]/u+$|i', $login))
msg('Введите корректный логин');
Вроде правильно, но на кириллицу ругается.
Мне надо разрешить English, русский и цифры.
для русских символов необходимо указать модификатор 'u'
if(!preg_replace ("/^[^a-zA-ZА-Яа-я0-9\s]*$/","",$login))
msg('Введите корректный логин');
Laravel, лучше вот так сделать
[code]<?php
if(preg_match('#[^a-zа-яё0-9]+$#iu', $login))
msg('Введите корректный логин');
?>[/code]
ох уж эти bb-коды...
Держи вариант
[code]
if(!preg_match('/^([a-zа-яё0-9])+?([a-zа-яё0-9])+$/ui',$login)){
msg('Логин может состоять из одних букв англ/рус алфавита и цифр.'); die();}
if(preg_match('/[a-z]/i',$login) && preg_match('/[а-яё]/siu',$login)){
msg('Логин не может одновременно содержать рус. и англ. буквы.'); die();}
if(mb_strlen($login,'UTF-8')<5 OR mb_strlen($login,'UTF-8')>20){
msg('Логин должен быть от 5 до 20 символов. '); die();}
[/code]