08/07/06 18:36:28
>>735
JavaScript(ECMAScript)にはそういうのはないな
Stringのreplace()で文字列置換が出来るからそれで自分の欲しい関数つくったらいいと思う
サンプル出すならこんな感じかな
// . \ + * ? [ ^ ] $ ( ) { } = ! | をエスケープ
function reEscape(s) {
return s.replace(/([\.\\\+\*\?\[\^\]\$\(\)\{\}\=\!\|])/g, "\\$1");
}
var rTARGET_URL = "";
// 全部一気にエスケープすると必要なものもエスケープしてしまうのでforで回して個別にエスケープ
// (Opera 9.50 以降ならネイティブでJavaScript 1.6のArrayのmap()があるのでもうちょっとシンプルに書ける)
for (var i = 0, len = TARGET_URL.length; i < len; i++) {
rTARGET_URL += "|^" + reEscape(TARGET_URL[i]);
}
rTARGET_URL = new RegExp(rTARGET_URL.slice(1));