опять preg_match

Статус
В этой теме нельзя размещать новые ответы.

Paranoiac

Новичок
опять preg_match

Народ помогите проверить логин формы уже 2 часа бьюсь

нужно чтобы пользоватеть мог вводить либо англ буквы цифры знаки -_ и пробел либо русские буквы цифры знаки -_ и пробел
и не мог использовать буквы 2 алфавитов одновременно
 

hammet

Новичок
я не силен в рег.выр. но можно попробовать так :)
PHP:
<?php
$name = "ИмечГо 9-1-1";
//$name = "Name of mine _ - 9-7";

if(preg_match("/^[а-яА-Я0-9-_\s]+$/", $name) XOR preg_match("/^[a-zA-Z0-9-_\s]+$/", $name)) {
    echo ':)';
} else {
    echo ':(';
}
?>
 

cDLEON

Онанист РНРСlub
Хм. В упор не вижу _\ 0-9 ни где. Точно так же логика ваших ифов мне не понятна, помоему нужно проверять на правильность, а не наобарот. К тому же попробуйте использывать | в регулярке и * для [ ] в вашем случае.
 

cDLEON

Онанист РНРСlub
hammet
PHP:
$arrEn=Array("A","B","C","D","a","b","c","d","и т.д.");
$arrRus=Array("А","Б","В","Г","а","б","в","г","и т.д.");
$en=false;$ru=false;
for($i=0;$i<strlen($str);$i++)
 {
 if(in_array($str[$i],$arrEn)
  $en=true;
 if(in_array($str[$i],$arrRus)
 $ru=true;
 if($en && $ru)
  die("ОШИБКО!!!!!");
 }
у меня тоже работает!!!!!!
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху