<?php
$file[] = 'dfjd5siof7jsd87485544oifj';
$file[] = '1238';
$file[] = '1238щщщщщ';
$file[] = 'hahaha';
$pattern = "/^[^а-яА-Я]+$/i";
foreach( $file as $name ) {
if ( preg_match( $pattern, $name ) )
echo $name.' - ok<br/>';
else
echo $name.' - wrong<br/>';
}
?>
В результате:
dfjd5siof7jsd8oifj - ok
1238 - ok
1238щщщщщ - wrong
hahaha - ok
Ну опытным думаю не надо объяснять что тут выбираются все символы, за исключением русских.
Что нужно поменять в $pattern - чтобы на "1238" - было wrong, а на всех остальных было все как и есть на результате. Имеется ввиду что если строки из одних лишь цифр, то было бы False.
Спустя 7 минут, 24 секунды (18.09.2011 - 17:05) killer8080 написал(а):
'#^([а-яё]+|\d+)$#i'
если юникод, добавить модификатор u
Спустя 5 минут, 48 секунд (18.09.2011 - 17:11) Andreyua написал(а):
Выводит
А надо так:
dfjd5siof7jsd87485544oifj - wrong
1238 - ok
1238щщщщщ - wrong
hahaha - wrong
А надо так:
dfjd5siof7jsd8oifj - ok
1238 - wrong
1238щщщщщ - wrong
hahaha - ok
Спустя 11 минут, 45 секунд (18.09.2011 - 17:23) killer8080 написал(а):
Да, вижу
лучше идти от обратного
лучше идти от обратного
$file[] = 'dfjd5siof7jsd87485544oifj';
$file[] = '1238';
$file[] = '1238щщщщщ';
$file[] = 'hahaha';
$file[] = 'ававяё';
$pattern = '#^[\d]+$|[а-яё]+#iu';
foreach( $file as $name ) {
if ( preg_match( $pattern, $name, $m ) )
echo $name.' - wrong<br/>';
else
echo $name.' - ok<br/>';
}
Спустя 12 минут, 41 секунда (18.09.2011 - 17:35) Andreyua написал(а):
Спасибо . Вроде получилось ))