如何大写用大写写的文本?

时间:2018-02-09 17:17:47

标签: jquery css styles

我有一个用大写字母写的文字。例如:

THIS IS UPPERCASE

我想要的是让它看起来像这样(大写它):

This Is Uppercase

我发现我不能用CSS做文字转换:大写仅适用于第一个字母,所以输出仍然是:

THIS IS UPPERCASE

有没有办法用jquery来达到这个效果?

编辑:

这是我的HTML代码:

<div class="badge">
<div class="participant">NAME SURNAME</div>
</div>

NAME和SURNAME是动态变量,但有些数据是用大写写的,有些是用小写写的,有些是用大写写的。我只想用Capitalize统一名称,可能包括我的html文件中的javascript,但是我无法大写用大写字母写的字符串。

3 个答案:

答案 0 :(得分:1)

尝试此功能

function capitalize(str){
        var val = str,
        substr = val.split(' '),
        returnVal = [];

        substr.forEach(function(val){
            returnVal.push(val.charAt(0).toUpperCase()+val.slice(1));
        });

    return returnVal.join(' ');
}

答案 1 :(得分:1)

是的,CSSCSS3在这里没有帮助,您可以在JavaScript中实现。

你可以这样做:

window.onload = function(){
  var elements = document.getElementsByClassName("every-word")
  for (var i=0; i<elements.length; i++){
    elements[i].innerHTML = elements[i].innerHTML.replace(/\\b([a-z])([a-z]+)?\\b/gim, "<span class='first-letter'>$1</span>$2")
  }
}

您的HTML将是:

<style>
  .first-letter {
    text-transform: capitalize;
  }
</style>
<p class="every-word">THIS IS UPPERCASE</p>

这将为您提供输出:

This Is Uppercase

答案 2 :(得分:0)

const str = "THIS IS UPPERCASE";

const tc = str.replace(/(\w)+/g, w =>
  w.charAt(0).toUpperCase() + w.slice(1).toLowerCase()
);

console.log( tc )