如果多个单词连接在一起,Regex将替换除最后一个非换行空格外的所有空格



使用javascript(包括jQuery),我试图替换所有,但最后的非分隔空间,如果多个单词连接。

例如:

A String of Words替换为A String of Words

我想你需要这样的东西,

> "A String of Words".replace(/ (?=.*? )/g, " ")
'A String of Words'

上面的正则表达式将匹配除最后一个以外的所有 字符串。

假设您的字符串是这样的,您可以使用Negative Lookahead来完成此操作。

var r = 'A String of Words'.replace(/ (?![^&]*$)/g, ' ');
//=> "A String of Words"

替代正则表达式,更容易理解:

var fn = function(input, sep) {
    var parts = input.split(sep);
    var last = parts.pop();
    return parts.join(" ") + sep + last;
};
> fn("A String of Words", " ")
"A String of Words"

最新更新