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 に答える