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

时间:2015-02-16 02:39:27

标签: javascript string

var names = "John Keynes
             Carl Gauss
             Paul Feyerabend
             Antoine Lavoisier"

输出结果应为:

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

2 个答案:

答案 0 :(得分:0)

只需捕获每两个单词并匹配以下一个或多个空格。然后用$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+相反,与{1}}匹配,与一个或多个空格字符匹配。 (..)被称为捕获组用于捕获与捕获组内存在的模式匹配的那些字符。稍后我们可以通过在替换部件上指定组索引编号来引用这些字符。

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

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

答案 1 :(得分:0)

以下是代码:



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