在php中使用撇号的大写字母

时间:2010-11-06 09:53:52

标签: php

我想确保所有的姓氏都是大写的,所以在php中我使用:

$surname = ucfirst(strtolower($dataField));

我如何确保O'Brien这样的名字不会导致O'brien

1 个答案:

答案 0 :(得分:1)

$surname = preg_replace('/\b(\w)(\w*)/', '\u$1\L$2', $surname);

\b是一个元字符,意思是“一个字的边界”。 \w表示任何单词字符([A-Za-z])。替换中的\u表示“大写后面的第一个字母”。 \L表示“小写直到比赛结束。”

这绝不是一个完整的解决方案。对于人名,计算机有点愚蠢。

This is a great article on the subject.