[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выбрать все символы (кроме русских) (Preg_Match)
Andreyua
Например

<?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 написал(а):
Спасибо . Вроде получилось ))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.