みかづきブログ その3

3ヶ月つづけてみました。

jQueryのセレクタでエスケープしなければならない文字31文字

http://api.jquery.com/category/selectors/api.jquery.com

 !"#$%&'()*+,./:;<=>?@[\]^`{|}~

こちらの31文字です。(30文字のように見えますが、先頭に半角スペースがはいってます)
これらの文字は \\ と バックスラッシュ × 2 でエスケープできます。

例えば、

<p id="[hey]">HEY!</p>

といった感じのイカしたIDを持った要素をセレクトしたい場合は、

$("#[hey]");

ではなく、

$("#\\[hey\\]");

という感じになります。(エスケープしないとエラーになります)

なので、エスケープ用の関数をつくっておくと非常に便利です。

JavaScript

function escapeSelectorString(val){
  return val.replace(/[ !"#$%&'()*+,.\/:;<=>?@\[\\\]^`{|}~]/g, "\\$&");
}

という感じですね。




ツイッターやってます!