2010-11-10 163 views
0

我遇到了这个php ucfirst()使大写字母中的每个单词的第一个字符。preg_match检查字符串中每个单词的第一个字母的大写

$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()...

回答

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

+1

+1。没有必要使用正则表达式来完成这样简单的任务。 – You 2010-11-10 22:35:24

+0

明白了!非常感谢你! – laukok 2010-11-10 22:37:18

+0

@你,同意。虽然是一个很棒的工具,但不幸的是,我发现它们在错误的*实例中比在* *中使用得太频繁。 – 2010-11-10 23:32:14

相关问题