Halo Jim :)
>saya punya form yg mengijinkan user utk menginput tag html, tapi
>terbatas hanya tag2 tertentu saja, misalnya <a>, <hr>, etc.
>Ada yg bisa bantu regex utk mengecek apakah tag yg diinput adalah tag
>yg diijinkan? udah coba2 tapi gagal terus.
Copy paste kode di bawah ini ke sebuah file .html, trus buka di browser.
Udah dicek, jalan di browser IE 4 dan NS 4. Di Opera 4 nggak jalan.
Silahkan dimodifikasi sendiri sesuai keperluan.
<html>
<body>
<FORM name='myform' METHOD=POST ACTION="">
<TEXTAREA NAME="content" ROWS="10" COLS="40">
</TEXTAREA><br>
<input type='button' value='Check tag'
onClick="check_tag(document.myform.content.value)">
</FORM>
<SCRIPT LANGUAGE="JavaScript">
<!--
function check_tag(inputstr) {
//daftar tag yg diperbolehkan, dipisah oleh tanda "|"
allow_tags = "p|br|a|hr";
str = "";
if (tag = inputstr.match(/(<\/?(\w+)(\s[^>]*)*>)/g)) {
//ambil seluruh tag
for(i=0; i<tag.length; i++) {
//hapus semua tag yg diperbolehkan
eval("tag[i]=tag[i].replace(/(^<\\/?("+allow_tags+")(\\s[^>]*)*>$)/i,'')");
str += tag[i];
}
//jika ada yang tersisa, berarti invalid tag
if (str != "") {
//beres-beresin supaya invalid tag tampilnya bagus
//buang atribut tag, jika ada
str = str.toLowerCase().replace(/(<\/?(\w+)(\s[^>]*)*>)/ig,"<$2>");
tag = str.match(/<\w+>/ig);
str = "";
//remove duplicates
for(i=0; i<tag.length; i++) {
if (str.indexOf(tag[i])<0) str += tag[i];
}
}
}
if (str=="")
alert("OK");
else
alert("Invalid tags : "+str);
}
//-->
</SCRIPT>
</body>
</html>
-elfan-
-----------
Berhenti langganan kirim email ke [EMAIL PROTECTED]
Arsip di http://www.mail-archive.com/[email protected]/