var names = "John Keynes
Carl Gauss
Paul Feyerabend
Antoine Lavoisier"
输出结果应为:
"John Keynes","Carl Gauss","Paul Feyerabend","Antoine Lavoisier"
答案 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, '))