我有这样的文字text + " " + getIncrementedNumber()
。我想通过JavaScript将以下字符替换为空字符串:+
,"
以及除之外的所有空格,这些空格由双引号括起来。我想要实现的输入和输出示例:
输入:text + " " + getIncrementedNumber()
;
输出:text getIncrementedNumber()
输入:text + "WhateveR" + getIncrementedNumber()
;
输出:textWhateveRgetIncrementedNumber()
输入:text +"Lorem ipsuM"+ getIncrementedNumber()
;
输出:textLorem ipsuMgetIncrementedNumber()
我正在尝试使用这些RegExps:
sourceText.replace( /\+|\s|\b"(.*?)\b"/g, '' )
,结果为'text""getIncrementedNumber()'
sourceText.replace( /\+|\s|\"(.*?)\"/g, '' )
,结果为'textgetIncrementedNumber()'
所以我在排除双引号之间的空格时遇到了问题。
答案 0 :(得分:1)
您可以使用
/\s*\+\s*"([^"]*)"\s*\+\s*/g
段:
var s = 'text +"Lorem ipsuM"+ getIncrementedNumber()';
s = s.replace(/\s*\+\s*"([^"]*)"\s*\+\s*/g, "$1");
console.log(s);

答案 1 :(得分:1)
您可以使用:
str = str.replace(/[+"]|[ \t]+(?=(?:(?:[^"]*"){2})*[^"]*$)/gm, '');
RegEx分手:
[+"]
:匹配+
或:
|
:或[ \t]+(?=(?:(?:[^"]*"){2})*[^"]*$)
:使用前瞻来匹配引号之外的空格或制表符,以确定前面引用的引号数。