preg_match для проверки верхнего регистра первой буквы каждого слова в строке - PullRequest
0 голосов
/ 11 ноября 2010

Я наткнулся на этот php ucfirst (), чтобы сделать прописными буквами первый символ каждого слова в строке.

$foo = 'hello world!';
$foo = ucfirst($foo); 

но как я могу использовать регулярное выражение и preg_match () для проверки, а затем отобразить сообщение об ошибке?

if (preg_match('/\b\p{Ll}/', $mem_titlename))
{
   $error = true;
   echo '<error elementid="mem_titlename" message="TITLE - please use uppercase for each word."/>';
}

не уверен, что означает это выражение в приведенном выше примере, но я получил его откуда-то, что делает ту же работу, что и ucfirst () ...

1 Ответ

5 голосов
/ 11 ноября 2010

Зачем использовать регулярное выражение? Кажется ненужным, если ucwords() делает то, что вы хотите. Если это так, просто следующее:

if (ucwords($mem_titlename) == $mem_titlename) {
   $error = true;
   echo '<error elementid="mem_titlename" message="TITLE - please use uppercase for each word."/>';
}

Также обратите внимание, что ucwords() делает то, что вы описываете, а не ucfirst(). http://www.php.net/manual/en/function.ucwords.php

...