RegEx将侧括号中的所有双引号替换为单引号

RegEx to replace all the double quotes to single quotes in side parenthesis

本文关键字:替换 单引号 RegEx      更新时间:2023-09-26

我正在寻找一个单行正则表达式,它应该将所有双引号转换为括号中的单引号。

例如:

<span onclick="javascript:myfunction("param(s)1", "param(s)2")"

我想把上面的转换成

<span onclick="javascript:myfunction('param(s)1', 'param(s)2')"

我是正则表达式的新手。请帮忙!

将执行此操作的函数是:

function replaceQuotes(inputString)
{
    var output = '';
    var inbrackets = 0;
    for (i = 0; i < inputString.length; i++)
    {
        var currentChar = inputString.charAt(i);
        switch (currentChar)
        {
            case ''"':
                if (inbrackets > 0)
                    output += '''';
                else
                    output += ''"';
                break;
            case '(':
                inbrackets++;
                output += '(';
                break;
            case ')':
                inbrackets--;
                output += ')';
                break; 
            default:
                output += currentChar;
                break;
        }
    }
    return output;
}

如果你想处理完整的HTML,你会得到比这更复杂的东西。

看起来你真的想把双引号替换成双引号,这个呢:

function replace_inside_quotes(str) {
  var regex_quotes = /"(.*)"(.*)"(.*)"/;
  while(regex_quotes.test(str)) {
    str = str.replace(regex_quotes, '"$1''$2''$3"');
  }
  return str;
}