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]/

Kirim email ke