反转一个字符串

时间:2011-03-28 23:50:10

标签: javascript

我想要反转一个字符串,然后我想要反转它中的每个单词。我能够扭转字符串。但无法扭转其中的词语。

鉴于Str =“你好吗” 预期结果=“你是如何”

我的代码 var my_str="how are you"; alert(my_str.split('').reverse().join(''));

结果我得到:uoy era woh

如何获得最终结果?

4 个答案:

答案 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(" "));

Try it here.

答案 3 :(得分:0)

如果您使用的是ES6,则可以使用-

    let myStr="How are you";
    console.log([...myStr].reverse().join(''));