[JS] タグを処理する関数
Ajaxっぽいサンプルをいろいろ作成していますが、もう少し時間がかかりそうです。 今回は、その過程で作成した関数をご紹介します。
まずは単に & < > 文字を、& < > に HTMLエスケープする escapeHTML() 関数。 そして戻す unescapeHTML() 関数です。
jp.rinco.escapeHTML = function(str) {
return str.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">");
}
jp.rinco.unescapeHTML = function(str) {
return str.replace(/>/g, ">")
.replace(/</g, "<")
.replace(/&/g, "&");
}
そして文字列から指定したタグの中身を取り出す、tagText() 関数です。
例えば str に "<title>aaa</title>"、tag_s に "<title>"、tag_e に "</title>" を指定し、その間に指定されたタグの中身 "aaa" を取り出します。
最後の引数は通常は false、str に指定した文字列が HTMLエスケープ されている場合に true を指定します。 例えば処理する文字列が "<title>aaa</title>" のような場合に true にします。
※ これはレアケースのようですが、Domino サイトが対象の場合には有効です
jp.rinco.tagText = function(str,tag_s,tag_e,cflag){
if (tag_s == "" || tag_e == "")
return "";
var key_s=cflag?jp.rinco.escapeHTML(tag_s):tag_s;
var key_e=cflag?jp.rinco.escapeHTML(tag_e):tag_e;
var pos_s = str.indexOf(key_s);
var pos_e = str.indexOf(key_e);
if (pos_s < 0 || pos_e < 0)
return "";
else
return str.substring(pos_s+key_s.length, pos_e);
}
以上、ホントは String に prototype で組み込むのが JavaScript っぽいのですが。 単に関数にしちゃってる、弱気な僕なのでありました。
2007/2/27 追記: jp.rincoオブジェクト へ移動
0 Comments:
コメントを投稿
<< Home