Помогите найти решение

xInOrK

Новичок
Помогите найти решение

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

mike

pmcoder
Не самый простой, если ты с ними не работал до этого.
Но самый оптимальный.
 

mike

pmcoder
Альтернативой регулярным выражениям может быть, например, создание массива, включающего все буквы, и проверка на принадлежность символов в слове множеству из массива.

Но лучше регулярные выражения.
 

Navarro

Новичок
$TStr='ab12345bddfgf;';
if (strlen($TStr))
{
$CharCode=ord($TStr[0]);
if ($CharCode> 64 && $CharCode < 123){echo 'ANSI Letter -'.$TStr[0]."\n";}
}
Пройтись циклом думаю сможешь сам :)
 

xInOrK

Новичок
я сделал так
$login=preg_replace("/[^a-z]/i","",$login);
$login=strtolower($login);
$len=strlen($login);
return (substr($login, -$len, 1));
 

Crazy

Developer
xInOrK, во-первых strtolower здесь лишен смысла (догадайся, почему). Во-вторых, все гораздо проще:

Код:
if (preg_match('/[a-z]/', $login, $matched)) {
  return $matched[0];
} else {
  // do something else
}
 

Crazy

Developer
xInOrK, а вот в этом случае нужно переводить в нижний регистр уже после substr. :) А еще лучше: :)

Код:
if (preg_match('/[a-zA-Z]/', $login, $matched)) {
  return strtolower($matched[0]);
} else {
  // do something else
}
 
Сверху