Javascript-将字符串中的所有逗号移动到新位置

Javascript-将字符串中的所有逗号移动到新位置,javascript,string,Javascript,String,在给定的字符串中,我希望将字符串中单词末尾的所有逗号移动到单词末尾,然后再移动到它们所附加到的单词。 例如:“不久的某个时候,猫说让我们走!”上面写着:“不久的某个时候,猫说,让我们走!” 有什么建议吗?这个问题可以通过使用捕获组和来轻松解决。String.replace的参数是前面提到的正则表达式和回调函数,其第二、第三和第四个参数是捕获的组: let str=“不久的某个时候,猫说我们走吧!”; 让result=str.replace(/(\s)(\s+)(,)/g,(匹配,空格,单词,逗

在给定的字符串中,我希望将字符串中单词末尾的所有逗号移动到单词末尾,然后再移动到它们所附加到的单词。 例如:“不久的某个时候,猫说让我们走!”上面写着:“不久的某个时候,猫说,让我们走!”
有什么建议吗?

这个问题可以通过使用捕获组和来轻松解决。
String.replace
的参数是前面提到的正则表达式和回调函数,其第二、第三和第四个参数是捕获的组:

let str=“不久的某个时候,猫说我们走吧!”;
让result=str.replace(/(\s)(\s+)(,)/g,(匹配,空格,单词,逗号)=>
逗号+空格+单词
);

console.log(结果);//“不久的某个时候,猫说,我们走吧!”
编辑:问题被编辑了,这是对它以前版本的回答。勒姆的答案是一个很好的答案,我建议使用它

-

编辑:我想我应该添加一些关于我在这里选择做什么的上下文

Javascript中的字符串是不可变的,这意味着它们不能更改,但我们可以根据需要创建它们的副本。然后,如果愿意,我们可以指定新值,当然也可以覆盖旧变量

由于我不一定以“regex方式”思考,我发现使用split(“”)将字符串转换为数组并使用函数映射映射每个单词是最容易的。为了映射,我传递了一个箭头函数,该函数负责评估每个单词。一旦我完成了对数组的处理,我就将它连接回一个字符串

let sentence = 'again, the cat said, let's go!'   
let result = sentence.split(' ').map((word) => word[word.length -1] == ',' ? ','+word.substring(0,word.length -1) : word).join(' ')

一种方法是使用RegExp和
string.replace()


这样做的目的是捕获一行单词字符
\w*
,这些字符在两个单独的捕获组中以逗号结尾。第二个参数实际上允许我们引用这些捕获组,我们应该用它替换匹配的子字符串

如果你有问题,你可以发布你尝试过的东西,清楚地解释什么不起作用,并提供一个解决方案。我建议读一个好问题。此外,一定要采取改变问题的方式,使所有收到的答案无效,这是不好的做法。
  str.replace(/(\w*)(,)/g, '$2$1');