目前,我在javascript中有一个基本的正则表达式,用于用半冒号替换字符串中的所有空格。字符串中的某些字符包含引号。理想情况下,我想用半冒号代替空格,但引号内的空格除外。

var stringin = "\"james johnson\" joe \"wendy johnson\" tony";
var stringout = stringin.replace(/\s+/g, ":");
alert(stringout);

谢谢
罗宾

最佳答案

尝试这样的事情:

var stringin = "\"james johnson\" joe \"wendy johnson\" tony";
var stringout = stringin.replace(/\s+(?=([^"]*"[^"]*")*[^"]*$)/g, ":");

请注意,当字符串中包含转义的引号时,它将断开:
"ab \" cd" ef "gh ij"

07-23 04:29