如何在php中将19a史密斯街改为19A史密斯街

前端之家收集整理的这篇文章主要介绍了如何在php中将19a史密斯街改为19A史密斯街前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想将街道地址转换为Title Case.这不完全是Title Case,因为一串数字末尾的字母应该是大写的.例如史密斯街19号.

我知道我可以使用“19史密斯街”改为“19史密斯街”

$str = ucwords(strtolower($str))

但是将“19a史密斯街”改为“19a史密斯街”.

如何将其转换为“19A史密斯街”?

另一种方法,更长,但可以更容易调整其他不可预见的情况,因为这是一个非常自定义的行为.
$string = "19a smith STREET";

// normalize everything to lower case
$string = strtolower($string);

// all words with upper case
$string = ucwords($string);

// replace any letter right after a number with its uppercase version
$string = preg_replace_callback('/([0-9])([a-z])/',function($matches){
    return $matches[1] . strtoupper($matches[2]);
},$string);

echo $string;
// echoes 19A Smith Street

// 19-45n carlsBERG aVenue  ->  19-45N Carlsberg Avenue

猜你在找的PHP相关文章