0

次のコードを検討してください。

$('[name='+temp[i][0]+']').prev().addClass('form_error');

ここで、temp[i][0] は角括弧 (チェックボックス配列を表すため) を含むフォーム フィールドの名前を保持する配列項目 name_of_field[]です。

これが機能するためには、フォーム フィールドの名前の角括弧をエスケープする必要があることを知っています。ただし、私は正規表現の初心者なので、正しく理解できないようです。誰かが私に適切なコードを提供できますか? どうもありがとう。

4

2 に答える 2

3

値を引用符で囲み、引用符をエスケープします。

var name = temp[i][0];
name = name.split('"').join('\\"');                   // Escaped " is \\"
$('[name="'+name+'"]').prev().addClass('form_error');

これは、他の有効な名前でも無効なセレクター文字 ( など) を説明し$ます。

本当に RegEx を使用したい場合は、以下で十分です (短いコードが常に読み取り可能ではないことを示すために、ワンライナーを意図的に使用しています)。

$('[name="' + temp[i][0].replace(/"/g, '\\"') + '"]').prev().addClass('form_error');
//            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
于 2012-04-08T14:15:24.423 に答える