javascript - 菜鸟问题在这里。句子反转,但保持字符在相同的位置
问题描述
我想反转句子(字符串)中的单词,但将标点符号保持在同一位置。
例如:问候!你今天怎么样?
结果:今天!你是怎么问候的?
到目前为止,我已经这样做了,但我真的不记得我应该如何处理带有标点符号的部分。我想过像 ('') 这样拆分并使用正则表达式进行循环和检查,但这看起来是一项艰巨的任务。如果您使用我的代码块来升级而不是编写自己的超级复杂功能,那将有很大帮助,毕竟我是新手,我可能无法阅读它们,哈哈。
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)
解决方案
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));
推荐阅读
- powershell - 使用 powershell 脚本重命名主机名
- amazon-s3 - 如何使用 Amazon S3 静态网站启用 AB 部署
- reactjs - React - InfiniteScroll(react-infinite-scroller), loadMore 函数重新渲染整个列表
- c# - 在类 c# 中为多个数组使用索引器
- flutter - 打开键盘会导致有状态小部件重新初始化
- c# - 如何使用 WCF 服务的代理实现读取类库中的 System.serviceModel
- angular - 在使用 Bootstrap 的模板中,如何将数组拆分为两列?
- python-3.x - 为什么我在使用 aiohttp 模块时必须使用 async with?
- api - 如何追加或组合 2 []array golang beego
- android - 如何在 Firebase 项目中授予应用级访问权限