将所有大写字母转换为初始大写字母

Posted

技术标签:

【中文标题】将所有大写字母转换为初始大写字母【英文标题】:Converting all uppercase letters to init caps 【发布时间】:2010-01-25 18:41:27 【问题描述】:

我想知道是否有任何方法只使用 CSS(这可以是特定于浏览器的 CSS)将所有大写文本转换为仅最初大写的单词,例如:

I YELL WITH MY KEYBOARD

将转换为:

I Yell With My Keyboard

编辑:我意识到我的问题不够清楚,输入的文本是大写的,而不是最初的小写,文本转换:大写似乎不适用于这样输入的数据。

【问题讨论】:

【参考方案1】:

您可以使用 CSS 对文本进行一些转换,这就是全部。

.Capitalize
 text-transform: capitalize 

.Uppercase
 text-transform: uppercase 

.Lowercase
 text-transform: lowercase 

.Nothing
 text-transform: none 

不幸的是,没有驼峰式文本转换。

您始终可以使用 javascript 来适当地转换文本,或者如果您使用诸如 php 或 ASP 之类的脚本语言,则在其中进行更改。

这是一个来自 strtoupper PHP 文档页面的示例:

function strtocamel($str, $capitalizeFirst = true, $allowed = 'A-Za-z0-9') 
    return preg_replace(
        array(
            '/([A-Z][a-z])/e', // all occurances of caps followed by lowers
            '/([a-zA-Z])([a-zA-Z]*)/e', // all occurances of words w/ first char captured separately
            '/[^'.$allowed.']+/e', // all non allowed chars (non alpha numerics, by default)
            '/^([a-zA-Z])/e' // first alpha char
        ),
        array(
            '" ".$1', // add spaces
            'strtoupper("$1").strtolower("$2")', // capitalize first, lower the rest
            '', // delete undesired chars
            'strto'.($capitalizeFirst ? 'upper' : 'lower').'("$1")' // force first char to upper or lower
        ),
        $str
    );

【讨论】:

我最终将不得不走这条路,在文本进入时对其进行格式化,而不是使用 css 进行转换。

以上是关于将所有大写字母转换为初始大写字母的主要内容,如果未能解决你的问题,请参考以下文章

C语言截取字符串将大写字母转换为小写字母。

使用 Linq 将所有字段转换为大写

请编写一个程序将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。

如何使用ruby / rails将所有大写字母转换为适当的首字母大写字母,其余为小写?

将整个范围转换为大写,而不循环遍历所有单元格

将字符串ss中所有下标为奇数位置上的字母转换为大写