(function($){ $.fn.alphanumeric = function(p) { p = $.extend({ ichars: "!@#$%^&*()+=[]\\\';,/{}|\":<>?~`.- ", nchars: "", allow: "" }, p); return this.each ( function() { if (p.nocaps) p.nchars += "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; if (p.allcaps) p.nchars += "abcdefghijklmnopqrstuvwxyz"; s = p.allow.split(''); for ( i=0;i?~`-", nchars : "", allow : "" }, p); return this.each ( function() { if (p.nocaps)p.nchars += "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; if (p.allcaps)p.nchars += "abcdefghijklmnopqrstuvwxyz"; s = p.allow.split(''); for (i = 0; i < s.length; i++)if (p.ichars.indexOf(s[i]) != -1) s[i] = "\\" + s[i]; p.allow = s.join('|'); var reg = new RegExp(p.allow, 'gi'); var ch = p.ichars + p.nchars; ch = ch.replace(reg, ''); $(this).keypress ( function(e) { if (!e.charCode)k = String.fromCharCode(e.which); else k = String.fromCharCode(e.charCode); if (ch.indexOf(k) != -1)e.preventDefault(); if (e.ctrlKey && k == 'v')e.preventDefault(); } ); $(this).bind('contextmenu', function() {return false}); }); }; })(jQuery);