我有这样的文字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()'


所以我有一个问题,要排除双引号之间的空格。

最佳答案

你可以用

/\s*\+\s*"([^"]*)"\s*\+\s*/g


片段:



var s = 'text +"Lorem ipsuM"+ getIncrementedNumber()';
s = s.replace(/\s*\+\s*"([^"]*)"\s*\+\s*/g, "$1");
console.log(s);

关于javascript - 替换加号,双引号和空格,双引号包围的空格除外,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47422206/

10-11 06:15