我想要反转一个字符串,然后我想要反转它中的每个单词。我能够扭转字符串。但无法扭转其中的词语。
鉴于Str =“你好吗” 预期结果=“你是如何”
我的代码
var my_str="how are you";
alert(my_str.split('').reverse().join(''));
结果我得到:uoy era woh
如何获得最终结果?
答案 0 :(得分:11)
如果您的字符串之间只有1个空格,则其他答案完全正确。
如果单词之间有多个空格,那么事情会有所不同: 以相反的顺序得到单词,重新加入1个空格:
str.split(/\s+/).reverse().join(" ")
反转整个字符串,仍然有原始空格:
str.split(/\b/).reverse().join('')
第一个使用正则表达式“/ \ s + /”来匹配整个空格,而不是单个空格。它用一个空格重新加入单词。
第二个使用正则表达式“/ \ b /”来分割单词和非单词之间的边界。由于空格的运行将被保留,它只是用空字符串重新加入。
答案 1 :(得分:8)
我认为你的字符串中有一个空字符串:my_str.split('')
确保放置空格:my_str.split(' ')
答案 2 :(得分:2)
问题是你是用空字符串而不是空格字符分裂。试试这个:
var str = "how are you";
alert(str.split(" ").reverse().join(" "));
答案 3 :(得分:0)
如果您使用的是ES6,则可以使用-
let myStr="How are you";
console.log([...myStr].reverse().join(''));