将所有大写字母转换为初始大写字母
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 进行转换。以上是关于将所有大写字母转换为初始大写字母的主要内容,如果未能解决你的问题,请参考以下文章
请编写一个程序将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。