我想将输入字符串转换为Title Case。
所以,如果我有一个输入字符串
Name: MR. M.A.D KARIM
我想生成以下输出字符串
Name: M.A.D Karim
如果我有一个输入字符串
Address: 12/A, ROOM NO-B 13
我想制作
Address: 12/A, Room No-B 13
我希望我的输出字符串在任何空白字符之后以及以下任何字符之后都有大写字母:.
,-
,/
。
我目前的解决方案是
ucwords(strtolower($string));
但它会在.
,-
和/
小写之后留下字符,而我希望它们是大写的。
答案 0 :(得分:4)
这应该适合你:
<?php
$str = "Name: MR. M.A.D KARIM";
$result = "";
$arr = array();
$pattern = '/([;:,-.\/ X])/';
$array = preg_split($pattern, $str, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
foreach($array as $k => $v)
$result .= ucwords(strtolower($v));
//$result = str_replace("Mr.", "", $result); ->If you don't want Mr. in a String
echo $result;
?>
输入:
Name: MR. M.A.D KARIM
Address: 12/A, ROOM NO-B 13
输出:
Name: M.A.D Karim
Address: 12/A, Room No-B 13
答案 1 :(得分:0)
使用Stringy
composer.json
"require": {
"voku/stringy": "~5.0"
}
PHP
Stringy::create('string')->toTitleCase()