<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: masked code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Fri, 29 Aug 2008 02:04:14 GMT</pubDate>
    <description>DZone Snippets: masked code</description>
    <item>
      <title>Masked Input //Javascript Object</title>
      <link>http://snippets.dzone.com/posts/show/666</link>
      <description>&lt;a href="http://jsfromhell.com/forms/masked-input"&gt;&lt;br /&gt;Simple and generic mask routine.&lt;br /&gt;&lt;br /&gt;[UPDATED CODE AND HELP CAN BE FOUND HERE]&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;@REQUIRES &lt;a href="http://www.jsfromhell.com/geral/event-listener"&gt;Event-Listener&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;// REQUIRES: http://jsfromhell.com/geral/event-listener&lt;br /&gt;&lt;br /&gt;//+ Jonas Raoni Soares Silva&lt;br /&gt;//@ http://jsfromhell.com/forms/masked-input [v1.0]&lt;br /&gt;&lt;br /&gt;MaskInput = function(f, m){ //v1.0&lt;br /&gt;    function mask(e){&lt;br /&gt;        var patterns = {"1": /[A-Z]/i, "2": /[0-9]/, "4": /[&#192;-&#255;]/i, "8": /./ },&lt;br /&gt;            rules = { "a": 3, "A": 7, "9": 2, "C":5, "c": 1, "*": 8};&lt;br /&gt;        function accept(c, rule){&lt;br /&gt;            for(var i = 1, r = rules[rule] || 0; i &lt;= r; i&lt;&lt;=1)&lt;br /&gt;                if(r &amp; i &amp;&amp; patterns[i].test(c))&lt;br /&gt;                    break;&lt;br /&gt;                return i &lt;= r || c == rule;&lt;br /&gt;        }&lt;br /&gt;        var k, mC, r, c = String.fromCharCode(k = e.key), l = f.value.length;&lt;br /&gt;        (!k || k == 8 ? 1 : (r = /^(.)\^(.*)$/.exec(m)) &amp;&amp; (r[0] = r[2].indexOf(c) + 1) + 1 ?&lt;br /&gt;            r[1] == "O" ? r[0] : r[1] == "E" ? !r[0] : accept(c, r[1]) || r[0]&lt;br /&gt;            : (l = (f.value += m.substr(l, (r = /[A|9|C|\*]/i.exec(m.substr(l))) ?&lt;br /&gt;            r.index : l)).length) &lt; m.length &amp;&amp; accept(c, m.charAt(l))) || e.preventDefault();&lt;br /&gt;    }&lt;br /&gt;    for(var i in !/^(.)\^(.*)$/.test(m) &amp;&amp; (f.maxLength = m.length), {keypress: 0, keyup: 1})&lt;br /&gt;        addEvent(f, i, mask);&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;//]]&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Usage (sorry, i'm lazy to write a help hahaha)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;form action=""&gt;&lt;br /&gt;telephone "(99)9999-9999"&lt;br /&gt;&lt;br /&gt;&lt;input type="text" /&gt;&lt;br /&gt;&lt;br /&gt;date "99/99/9999"&lt;br /&gt;&lt;br /&gt;&lt;input type="text" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;m&#225;scara = letter + letter withou accent + 2 numbers + "-" + anything + letter "Cc99-*C"&lt;br /&gt;&lt;br /&gt;&lt;input type="text" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;everything, but a, b or c "E^abc"&lt;br /&gt;&lt;br /&gt;&lt;input type="text" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;only a, b or c "O^abc"&lt;br /&gt;&lt;br /&gt;&lt;input type="text" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;just letters "C^"&lt;br /&gt;&lt;br /&gt;&lt;input type="text" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;just letters and also white-space "C^ "&lt;br /&gt;&lt;br /&gt;&lt;input type="text" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;just numbers and also the letters a, b e c "9^abc"&lt;br /&gt;&lt;br /&gt;&lt;input type="text" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/form&gt;&lt;br /&gt;&lt;br /&gt;&lt;script&gt;&lt;br /&gt;with( document.forms[0] ){&lt;br /&gt;MaskedInput.apply( elements[0], '(99)9999-9999' );&lt;br /&gt;MaskedInput.apply( elements[1], '99/99/9999' );&lt;br /&gt;MaskedInput.apply( elements[2], 'Cc99-*C' );&lt;br /&gt;MaskedInput.apply( elements[3], 'E^abc' );&lt;br /&gt;MaskedInput.apply( elements[4], 'O^abc' );&lt;br /&gt;MaskedInput.apply( elements[5], 'C^' );&lt;br /&gt;MaskedInput.apply( elements[6], 'C^ ' );&lt;br /&gt;MaskedInput.apply( elements[7], '9^abc' );&lt;br /&gt;}&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 09 Sep 2005 04:10:55 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/666</guid>
      <author>jonasraoni (Jonas Raoni Soares Silva)</author>
    </item>
  </channel>
</rss>
