首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字首字母的词()

字首字母的词()
EN

Stack Overflow用户
提问于 2018-12-18 10:19:27
回答 2查看 64关注 0票数 2

我需要一个函数来大写每个单词的第一个字母(而不是符号/字符)。在本例中,我想使用一些类似于ucword()的自定义函数。

例如,它完美地工作了:

代码语言:javascript
复制
// returns: This Works Perfectly
ucwords( 'this works perfectly' );

但这次失败了:

代码语言:javascript
复制
// returns: This Works Perfectly (or "maybe Not" Always)
// i want a function which returns: This Works Perfectly (Or "Maybe Not" Always)
ucwords( 'this works perfectly (or "maybe not" always)' );

问题是

(或

“也许

不是资本化的,但我需要它被资本化。有人对此有自定义功能吗?

提前谢谢你!

EN

回答 2

Stack Overflow用户

发布于 2018-12-18 10:27:39

由于PHPVersion5.5.16,函数ucword有第二个名为$delimiters的参数,它的默认值是“\t\r\n\f\v",在正式文档:http://php.net/manual/en/function.ucwords.php中可以看到

你可以这样做:

代码语言:javascript
复制
$delimiters = " \t\r\n\f\v\"'()"    
ucwords( 'this works perfectly (or "maybe not" always)', $delimiters );
票数 0
EN

Stack Overflow用户

发布于 2018-12-18 10:47:00

最后,我找到了支持任何字母字符的正确解决方案

代码语言:javascript
复制
<?php
echo preg_replace_callback('/(?<=\s|^|\W|\d)([\p{L}])/u', function($match) {
    return mb_strtoupper($match[1]);
}, 'this works perfectly (or "maybe not" always)');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53830861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档