我希望在字符串反转时将所有内容都设为小写,然后将每个单词的第一个字母大写。我已经扭转了字符串,但经过多次尝试后,我能得到的唯一结果就是将整个反转字符串大写。
function titleCase(str) {
var reversed = str.toLowerCase().split('').reverse();
var newArr = [];
for (var i = 0; i < reversed.length; i++) {
var firstLetter = reversed[i].charAt(0).toUpperCase();
var restOfWord = reversed[i].slice(1);
newArr[i] = firstLetter + restOfWord;
}
return newArr.join('');
}
答案 0 :(得分:1)
如果您需要将其转换回小写&amp;,请使用toLowerCase()
css属性
text-transform: capitalize
将使每个单词的首字母大写
function titleCase(str) {
var reversed = str.toLowerCase().split('').reverse();
var newArr = [];
for (var i = 0; i < reversed.length; i++) {
var firstLetter = reversed[i].charAt(0).toUpperCase();
var restOfWord = reversed[i].slice(1);
newArr[i] = (firstLetter + restOfWord).toLowerCase();
}
return newArr.join('');
}
document.getElementById('test').innerHTML = titleCase('Hello how are you')
.test {
text-transform: capitalize
}
<div class="test" id="test"></div>
答案 1 :(得分:0)
现在它将起作用
function titleCase(str) {
var reversed = str.toLowerCase().split(' ').reverse();
var newArr = [];
for (var i = 0; i < reversed.length; i++) {
reversed[i]=reversed[i].split("").reverse().join("");
var firstLetter = reversed[i].charAt(0).toUpperCase();
var restOfWord = reversed[i].slice(1);
newArr[i] = firstLetter + restOfWord;
}
return newArr.join(' ');
}
答案 2 :(得分:0)
试试这个 -
function reverseString(str) {
return str.split("").reverse().join("").toLowerCase();
}
document.getElementById('test').append(reverseString("Hello"));
&#13;
#test {
text-transform: capitalize
}
&#13;
<span id='test'></span>
&#13;
答案 3 :(得分:0)
在反转字符串后,您需要将其连接回split
空格,以便在for循环中只使用每个单词的第一个字母。
function titleCase(str) {
var reversed = str.toLowerCase().split('').reverse();
reversed = reversed.join('').split(' ');
var newArr = [];
for (var i = 0; i < reversed.length; i++) {
var firstLetter = reversed[i].charAt(0).toUpperCase();
var restOfWord = reversed[i].slice(1);
newArr[i] = firstLetter + restOfWord;
}
return newArr.join(' ');
}
console.log(titleCase('hello HELLO'));
答案 4 :(得分:0)
// Input.
const before = 'hello WORLD'
console.log(`Before: ${before}`)
// Conversion.
const lowercase = before.toLowerCase()
const reversed = [...lowercase].reverse()
const capitalised = reversed.map((character, index) => {
const isFirstCharacter = (index === 0)
const isAfterWhiteSpace = isFirstCharacter ? false : (reversed[index-1] === ' ')
if (isFirstCharacter || isAfterWhiteSpace) return character.toUpperCase()
return character
})
// Output + Proof.
const after = capitalised.join('')
console.log(`After: ${after}`)
&#13;
答案 5 :(得分:0)
你可以使用replace和一些花哨的正则表达式来做你想做的事。
var sentence = "hello i am a world 12321321 ;[/>?]"
console.log(sentence);
function titleCase(str) {
return str.toLowerCase().split('').reverse().join('').replace(/\b\w/mg,
(match)=>{return match.toUpperCase();}
);
}
console.log(titleCase(sentence));
&#13;