Javascript 替换加号、双引号和空格(由双引号包围的空格除外)
我有这样的文本Javascript 替换加号、双引号和空格(由双引号包围的空格除外),javascript,regex,Javascript,Regex,我有这样的文本text+“”+getIncrementedNumber()。我想通过JavaScript将以下字符替换为空字符串:+,“和所有空格,除了用双引号括起来的空格。我想实现的输入和输出示例: 输入:text+“”+getIncrementedNumber() 输出:text getIncrementedNumber() 输入:text+“任意”+getIncrementedNumber() 输出:textWhateveRgetIncrementedNumber() 输入:text+“
text+“”+getIncrementedNumber()
。我想通过JavaScript将以下字符替换为空字符串:+
,“
和所有空格,除了用双引号括起来的空格。我想实现的输入和输出示例:
- 输入:
输出:text+“”+getIncrementedNumber()
text getIncrementedNumber()
- 输入:
输出:text+“任意”+getIncrementedNumber()
textWhateveRgetIncrementedNumber()
- 输入:
输出:text+“Lorem ipsuM”+getIncrementedNumber()
textLorem ipsuMgetIncrementedNumber()
,这将导致sourceText.replace(/\+\s|\b)(.*?\b)/g')
'text“getIncrementedNumber()”
,这将导致sourceText.replace(/\+\s |\“(.*?\”)
'textgetIncrementedNumber()'
/\s*\+\s*"([^"]*)"\s*\+\s*/g
片段:
var s='text+“Lorem ipsuM”+getIncrementedNumber();
s=s.replace(/\s*\+\s*”([^“]*)”\s*\+\s*/g,“$1”);
控制台日志代码>您可以使用
/\s*\+\s*"([^"]*)"\s*\+\s*/g
片段:
var s='text+“Lorem ipsuM”+getIncrementedNumber();
s=s.replace(/\s*\+\s*”([^“]*)”\s*\+\s*/g,“$1”);
console.log;
您可以使用:
str = str.replace(/[+"]|[ \t]+(?=(?:(?:[^"]*"){2})*[^"]*$)/gm, '');
正则表达式分解:
[+”]
:匹配+
或:
|
:或
[\t]+(?=(?:(?:(?:[^“]*”){2})*[^“]*$)
:通过使用前向断言前面偶数个引号来匹配引号之外的空格或制表符
您可以使用:
str = str.replace(/[+"]|[ \t]+(?=(?:(?:[^"]*"){2})*[^"]*$)/gm, '');
正则表达式分解:
[+”]
:匹配+
或:
|
:或
[\t]+(?=(?:(?:(?:[^“]*”){2})*[^“]*$)
:通过使用前向断言前面偶数个引号来匹配引号之外的空格或制表符
是否有任何嵌套引号,转义或其他形式?不,没有嵌套或转义。在这种情况下,我将用
或其他不存在的内容替换所有带引号的空格,然后替换引号部分,然后将
转换为空格。将其拆分可以简化逻辑我需要双引号。是否有嵌套引号引号,转义还是其他?不,没有嵌套或转义。在这种情况下,我会用
或其他不存在的东西替换所有带引号的空格,然后替换引号部分,然后将
转换为空格。分解它可以简化逻辑我需要双引号。谢谢。为什么“$1使用“
而不是将“
作为替换值”“$1”
对应于正则表达式中括号之间匹配的内容,否则引号之间的部分将丢失。现在保留下来了,谢谢。为什么使用“$1”
而不是仅使用”
作为替换值?“$1”
对应于正则表达式中括号之间匹配的内容,否则引号之间的部分将丢失。现在它被保留了下来。