use*_*635 2 javascript regex replace
目前我在javascript中有一个基本的正则表达式,用半冒号替换字符串中的所有空格.字符串中的某些字符包含引号.理想情况下,我想用半冒号替换空格,但引号内的空格除外.
var stringin = "\"james johnson\" joe \"wendy johnson\" tony";
var stringout = stringin.replace(/\s+/g, ":");
alert(stringout);
Run Code Online (Sandbox Code Playgroud)
谢谢罗宾
Bar*_*ers 11
尝试这样的事情:
var stringin = "\"james johnson\" joe \"wendy johnson\" tony";
var stringout = stringin.replace(/\s+(?=([^"]*"[^"]*")*[^"]*$)/g, ":");
Run Code Online (Sandbox Code Playgroud)
请注意,当字符串中存在转义引号时,它会中断:
"ab \" cd" ef "gh ij"
Run Code Online (Sandbox Code Playgroud)