Eu uso o plugin MeioMask para gerar máscaras nos meus forms há mais de 2 anos. Gosto deste plugin porquê é muito fácil de aplicar regras para criar novos formatos e usa JQuery. Outra coisa boa é que este plugin é de um brasileiro. Você pode dar uma conferida na documentação em http://www.meiocodigo.com/projects/meiomask
Eu precisei criar uma máscara para um campo do tipo slug que não possui acentos, caracteres especiais e espaços em branco. A ER para isso é /[a-z0-9_-]/
Para adicionar a nova máscara com a regra abra o arquivo jquery.meio.mask.js procure:
rules : { 'z': /[a-z]/, 'Z': /[A-Z]/, 'a': /[a-zA-Z]/, '*': /[0-9a-zA-Z]/, '@': /[0-9a-zA-ZçÇáàãâéèêíìóòôõúùü]/, 'x': /[a-z0-9_-]/ }
Um detalhe curioso foi que não se pode criar uma regra com o nome maior que um char que não funciona. Quando adicionei a regra para permitir o uso do hífen “-” vi que tinha uma outra regra limitando o uso deste char no bloco options onde tinha fixedChars : ‘[(),.:/ -]’ como configuração default do plugin. Então na ER onde eu colocava o “-” ele tinha o comportamento de uma máscara fixa.
Para resolver vc tem que adicionar no options fixedChars:null para fazer um overwrite da config padrão.
Veja como ficou a config para usar a máscara.
$('input.slug').setMask({ mask : 'x', type:'repeat' , fixedChars:null});
Caso tenha alguma duvida deixe um comentário que terei prazer em ajudar.
Comentários são bem vindos assim posso melhorar a qualidade dos tutoriais aqui apresentados.