1

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

前任:

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

我希望将上面的转换为

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

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

4

2 回答 2

0

执行此操作的函数是:

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,您将需要比这更复杂的东西。

于 2013-02-11T17:40:03.960 回答
-1

看来您真的想在双引号内替换双引号,那又如何:

function replace_inside_quotes(str) {
  var regex_quotes = /"(.*)"(.*)"(.*)"/;
  while(regex_quotes.test(str)) {
    str = str.replace(regex_quotes, '"$1\'$2\'$3"');
  }
  return str;
}
于 2013-02-11T16:39:10.527 回答