Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于替换引号内字符的正则表达式_Javascript_Regex - Fatal编程技术网

Javascript 用于替换引号内字符的正则表达式

Javascript 用于替换引号内字符的正则表达式,javascript,regex,Javascript,Regex,我有两个测试字符串: 1+":"+2:xyz 1+"a:fb"+2:xyz 我试图替换引号之间的: 我试过这个: (".*):(.*") 替换为: $1Q$2 但我最终得出的结论是: 1+"Q"+2:xyz 1+"Q"+2:xyz 1+"Q"+2:xyz 1+"aQfb"+2:xyz 但最后我想说的是: 1+"Q"+2:xyz 1+"Q"+2:xyz 1+"Q"+2:xyz 1+"aQfb"+2:xyz 谁能帮帮我吗。必须在Javascript中工作 编辑: 我已经将我的测试工具切

我有两个测试字符串:

1+":"+2:xyz
1+"a:fb"+2:xyz
我试图替换引号之间的:

我试过这个:

(".*):(.*")
替换为:

$1Q$2
但我最终得出的结论是:

1+"Q"+2:xyz
1+"Q"+2:xyz
1+"Q"+2:xyz
1+"aQfb"+2:xyz
但最后我想说的是:

1+"Q"+2:xyz
1+"Q"+2:xyz
1+"Q"+2:xyz
1+"aQfb"+2:xyz
谁能帮帮我吗。必须在Javascript中工作

编辑:

我已经将我的测试工具切换到一个正常工作的工具(即直接在浏览器中的javascript中进行测试)

现在可以这样做了:

var str = '1+"a:fb"+2:xyz';
var res = str.replace(/(".*):(.*")/g, "$1Q$2");
但是如果我有两个:在两组引号中,比如:

1+"a:fb"+2+":"
我现在得到这个结果:

1+"a:fb"+2+"Q":xyz

实际上,您正在尝试替换由三部分组成的模式:

  • 开头且既不包含
    也不包含
  • a
  • 既不包含
    也不包含
    且以
    结尾的位
  • 所以这个表达式看起来像:

    ("[^:"]*):([^:"]*")
    
    $1Q$2
    替换,这将导致

    1+"Q"+2:xyz
    1+"aQfb"+2:xyz
    

    您的模式无法正常工作的原因在于。

    实际上,您正在尝试替换由三部分组成的模式:

  • 开头且既不包含
    也不包含
  • a
  • 既不包含
    也不包含
    且以
    结尾的位
  • 所以这个表达式看起来像:

    ("[^:"]*):([^:"]*")
    
    $1Q$2
    替换,这将导致

    1+"Q"+2:xyz
    1+"aQfb"+2:xyz
    

    您的正则表达式没有正常工作的原因在于。

    您的正则表达式中的所有反斜杠是怎么回事?没有巫毒逃脱。逃避那些必须逃避的事情,并且只逃避那些事情。我总是逃避引用-看起来我不需要-现在已经改变了它。你的方法不是如预期的那样有效吗?嗯-一定是我用的测试工具-干杯Danilo@Graham不需要在正则表达式文本中转义引号(由
    /
    分隔)。需要在字符串文本中转义引号。这是字符串文本的要求,与正则表达式无关。正则表达式中的所有反斜杠是怎么回事?没有巫毒逃脱。逃避那些必须逃避的事情,并且只逃避那些事情。我总是逃避引用-看起来我不需要-现在已经改变了它。你的方法不是如预期的那样有效吗?嗯-一定是我用的测试工具-干杯Danilo@Graham不需要在正则表达式文本中转义引号(由
    /
    分隔)。需要在字符串文本中转义引号。这是字符串文本的要求,与正则表达式无关。啊哈-这适用于我编辑的版本-谢谢你一定要花一些时间来考虑贪婪匹配。它有潜力咬你,它有潜力成为一个非常有效的工具。知道它是如何工作的是关键。啊哈-这适用于我编辑的版本-谢谢你一定要花一些时间来思考贪婪的匹配。它有潜力咬你,它有潜力成为一个非常有效的工具。知道它是如何工作的是关键。