如何在反转字符串后大写每个单词的第一个字母

时间:2017-11-17 03:38:40

标签: javascript

我希望在字符串反转时将所有内容都设为小写,然后将每个单词的第一个字母大写。我已经扭转了字符串,但经过多次尝试后,我能得到的唯一结果就是将整个反转字符串大写。

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(''); 
} 

6 个答案:

答案 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)

试试这个 -

&#13;
&#13;
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;
&#13;
&#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)

&#13;
&#13;
// 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;
&#13;
&#13;

答案 5 :(得分:0)

你可以使用replace和一些花哨的正则表达式来做你想做的事。

&#13;
&#13;
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;
&#13;
&#13;