我有一个用大写字母写的文字。例如:
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,但是我无法大写用大写字母写的字符串。
答案 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)
是的,CSS
或CSS3
在这里没有帮助,您可以在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 )