使用CSS和jQuery将ALL CAPS转换为Proper Case

Car*_*lyn 3 css jquery

我正在尝试做类似于这个线程的事情/sf/answers/242988091/ 我觉得我想要像哈曼发布的jquery代码,并说它现在是一个插件?

我所拥有的是来自数据库的所有CAPS标题.例如:

快速的布朗福克斯正在关注跳跃

我想看起来像:

快速布朗福克斯即将跳过围栏

那么有没有办法用CSS和jQuery来改变文本并消除某些单词变成正确的案例?但我想我需要保留第一个实例.就像我删除了"the,is,to,and"然后标题中的第一个"the"将全部小写.那么只有当它不是第一个单词时,我才能以某种方式消除这些常用词?

我知道这很多但我对jQuery并不是很熟悉.是否有任何教程或插件可以显示如何执行此类操作.我已经看到很多关于如何转换ALL CAPS文本的问题,因此解决方案可能非常有用.

Bra*_*one 5

在相关问题中修改了Greg Dean答案中的代码.

我认为这个算法最好是一个有根据的猜测,因为它实际上并没有评估英语大小写规则.您可能需要在noCaps列表中添加更多单词以获得更高的准确性.

JS

var ele = $('p'); 
ele.text(toProperCase(ele.text())); 

function toProperCase(str)
{
    var noCaps = ['of','a','the','and','an','am','or','nor','but','is','if','then', 
'else','when','at','from','by','on','off','for','in','out','to','into','with'];
    return str.replace(/\w\S*/g, function(txt, offset){
        if(offset != 0 && noCaps.indexOf(txt.toLowerCase()) != -1){
            return txt.toLowerCase();    
        }
        return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
    });
}
Run Code Online (Sandbox Code Playgroud)

HTML

<p>THE QUICK BROWN FOX IS ABOUT TO JUMP OVER THE FENCE</p>
Run Code Online (Sandbox Code Playgroud)