preg_match用于检查字符串中每个单词的首字母大写

时间:2010-11-10 22:28:12

标签: php regex preg-match

我遇到了这个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 个答案:

答案 0 :(得分:5)

为什么要使用正则表达式?如果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