[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: функция только англ. буквы и цифры
sx000
function only_eng($in){
$n=0;
$eng_pattern = "/^[_-a-z0-9]/i";
if (gettype($in) == "array"){
foreach( $in as $key => $in_ ) {
if (preg_match ( $eng_pattern, $in_ ) ){
$in[$n] = $in_;
$n++;
}
}
}
else {
if (preg_match ($eng_pattern, $in ) ){
}
else {
$in = 0;
}
}


return $in;
}


написал функцию но почем уто не работает она ... в частности она берет и китайские и русские ...
Нужно чтоб брал только англ буквы, любого регистра, знак подчеркивания, тире и все. Остальное чтоб не брал



Спустя 14 минут, 26 секунд (25.11.2011 - 23:13) I++ написал(а):
Есть замечательна программа:

Свернутый текст

Называет Regex Coach, можно проверять регулярное выражение в реальном времени и даже пошагово.

http://weitz.de/regex-coach/

user posted image

может так?

$eng_pattern = "/^[\_\-a-z0-9]+$/i";


Спустя 6 минут, 43 секунды (25.11.2011 - 23:20) sx000 написал(а):
не рабеотае такой вариант вообще большую часть в нули превращает, for running The Regex Coach under Wine. прога не очень по вайном работает на маке blink.gif но все равно спасибо

Спустя 7 минут, 23 секунды (25.11.2011 - 23:27) sx000 написал(а):
функция смотрит если массив то тогда начинает чистить его от шлака который содержит еще что то кроме англ букв любого регистра, цифр, тире и знака подчеркивания - создавая при этом новый массив, но уже без мусорных строк.
Вторая часть по сути должна смотреть если это значение просто а не массив, то смотрим если есть мусор в строке то приравниванием ее нулю вот и все.

Спустя 2 минуты, 50 секунд (25.11.2011 - 23:30) I++ написал(а):
# return false|array|string
function only_eng($data)
{
static $eng_pattern = '/^[\_\-a-z0-9]+$/i';
$ret_arr = false;

if(gettype($data) == 'array')
{
foreach($data as $val)
{
if(preg_match($eng_pattern, $val))
{
$ret_arr[] = $val;
}
}


if(!empty($ret_arr))
return $ret_arr;
else
return
false;
}
else
{
if(!preg_match($eng_pattern, $data))
return false;
}

return $data;
}


Жаль PHP не Pown, pown бы уже излил реки недовольства на ваши любимые пробелы вместо табуляции.

P.S. попробуем ужать код.

Спустя 8 минут, 47 секунд (25.11.2011 - 23:39) sx000 написал(а):
нет чистит все под чистую smile.gif, скажем значение для него Bul это return false;

Спустя 14 минут, 57 секунд (25.11.2011 - 23:54) I++ написал(а):
Примеры того чего не отфильтровывает можно?

Эта регулярка проверяет:-_a-z0-9 (не зависимо от регистра) Если значения отличаются, он их не возвращает, в виде массива или строки.

Спустя 6 минут, 20 секунд (26.11.2011 - 00:00) sx000 написал(а):
все ок спасибо я пробел забыл вписать smile.gif
Быстрый ответ:

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