首页 > 解决方案 > 菜鸟问题在这里。句子反转,但保持字符在相同的位置

问题描述

我想反转句子(字符串)中的单词,但将标点符号保持在同一位置。

例如:问候!你今天怎么样?

结果:今天!你是怎么问候的?

到目前为止,我已经这样做了,但我真的不记得我应该如何处理带有标点符号的部分。我想过像 ('') 这样拆分并使用正则表达式进行循环和检查,但这看起来是一项艰巨的任务。如果您使用我的代码块来升级而不是编写自己的超级复杂功能,那将有很大帮助,毕竟我是新手,我可能无法阅读它们,哈哈。

let str = 'greetings! how are you today?'
let stringArr = ''

function strReverser(str) {
  stringArr = str.split(' ').reverse().join(' ')

  return stringArr
}
stringArr = strReverser(str)
console.log(stringArr)

strReverser(str)

标签: javascriptarrayssplit

解决方案


let str = "greetings! how are you today?";

function strReverser(str) {
  const regex = /\w+/g;
  const words = str.match(regex);
  return str.replace(regex, () => words.pop());
}

console.log(strReverser(str));


推荐阅读