Artigos meus já cobriram aspectos básicos de Validação de formulários HTML com JavaScript e até mais específicos como Tratamento de CPF e CNPJ em JavaScript.
Para completar, você pode querer também um controle maior de vallidação durante a digitação de um campo de formulário HTML, com o recurso de máscara de formatação.
Neste caso, não vamos reinventar a roda. Já há artigos e bibiotecas prontas para realizar esse trabalho disponíveis livremente na Internet. Em especial, gostei muito do plugin Masked Input para a bibioteca jQuery.
- JavaScript Input Masks, coletânea de soluções disponíveis, em Web Resources Depot.
- Máscara em campos de formulário – Uma solução simples e crossbrowser com expressões regulares, por Elcio Ferreira, autor do blog de tecnologia fechaTag e um dos mantenedores do portal Tableless.
- Biblioteca Mask JavaScript API, por Dan G. Switzer, II.
- Javascript Input Mask.
jQuery
- Masked Input Plugin (em inglês) para jQuery, por DigitalBush.com. Extensão de entrada com máscara para a biblioteca javascript jQuery. Permite ao usuário preencher mais facilmente um campo (input) de tamanho fixo com dados em determinado formato (datas, números de telefone, etc). Testado em Internet Explorer 6/7, Firefox 1.5/2/3, Safari, Opera, e Chrome.
- Máscaras em campos de formulários com jQuery, por Anderson Custódio, 2008-11-17, em Pinceladas da Web.
- Máscara para campos INPUT do formulário, por profissionalmmn, 2007-04-19, no blog Ajax JQUERY & Javascript.
- jQuery Plugins – Masket Input.
Prototype
- How to create input masks in HTML – HTML Input Mask, por Baron Schwartz (Xaprb). Novo repositório do código em Google Code: Flexible JS Formatting Libraries.
Rails
- Inputs plugin com jQuery (jRails), por Jésus Lopes. Repositório do projeto em GitHub: inputs.
- JSMask – Máscara em campo texto com Prototype, por Ozéias Sant’ana. Repositório do projeto em GitHub: js_mask.
Aqui tem um código bom também (Máscara genérica para campos numéricos em JavaScript: http://goo.gl/otlbMl)
@Daniel Bunche: Muito obrigado pela contribuição ao blog! (E desculpe a minha demora em responder…)
Abraço