替换字符串的每个备用空格

replacing every alternate blank space of a string

本文关键字:备用 空格 字符串 替换      更新时间:2023-12-09
var names = "John Keynes
             Carl Gauss
             Paul Feyerabend
             Antoine Lavoisier"

输出结果应为:

"John Keynes","Carl Gauss","Paul Feyerabend","Antoine Lavoisier"

只需捕获每个两个单词并匹配以下一个或多个空格。然后用$1,替换整个匹配项

> var names = "John Keynes Carl Gauss Paul Feyerabend Antoine Lavoisier";
undefined
> names.replace(/('S+'s+'S+)'s+/g, "$1,")
'John Keynes,Carl Gauss,Paul Feyerabend,Antoine Lavoisier'

'S+匹配一个或多个非空格字符,其中's+与匹配一个或多个空格字符的'S+相反。 (..)称为捕获组用于捕获与捕获组中存在的模式匹配的那些字符。稍后,我们可以通过在替换部件上指定组索引号来引用这些字符。

要将名称括在双引号内,您需要添加另一个replace函数。

> names.replace(/('S+'s+'S+)'s+/g, "$1,").replace(/([^,'s]+'s+[^,'s]+)/g, '"$1"')
'"John Keynes","Carl Gauss","Paul Feyerabend","Antoine Lavoisier"'

这是代码:

var names = "John Keynes Carl Gauss Paul Feyerabend Antoine Lavoisier";
alert(names.replace(/('s+[^s+]*)'s+/g, '$1, '))