Ir para conteúdo
Fórum Script Brasil

Faros

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

Sobre Faros

Faros's Achievements

0

Reputação

  1. Visitei o link de Elcio e indiscutivelmente o código foi originado de lá, porém não conseguir informações para resolver o problema. Pesquisando um pouco mais achei um Guia de Consulta Rápida sobre Expressões Regulares de Aurélio Marinho Jargas (vamos dar os créditos), onde encontrei “um luz” para solução da validação das horas (segue code). Vou trabalhar no campo de datas e se possível na validação dos dígitos verificadores de CPF e CNPJ, quando estiver tudo pronto publico o código na integra. Valeu.... function hora(v){ v=v.replace(/\D/g,"") //Remove tudo o que não é dígito v=v.replace(/(\d{2})(\d)/,"$1:$2") //Coloca dois ponto entre o segundo e o terceiro dígitos v=v.replace( (/^([^0-2]|([0-1][^0-9]|2[^0-3])|([0-1][0-9]|2[0-3]):[^0-5]|([0-1][0-9]|2[0-3]):[0-5][^0-9])/),"")//valida horas return v }
  2. KaKarotto obrigado pela contribuição, porém ainda não conseguir fazer a validação funcionar. O código foi derivado de pesquisas realizadas na internet, mas não encontrei os artigos do Elcio, talvez ache a solução por lá, se você tiver algum link agradeça tb. faros
  3. estou fazendo um validador de campos de form, utilizando java script: expressões regulares, que só permite entradas de dados corretos para cada tipo de campo (sem mostrar janela de erro), meus conhecimentos de Javascript são limitados e estou com dificuldades em alguns campos, mais especificamente no campo de dados de hora, nele justamente horas invalidas estão sendo aceitas e as corretas são apagadas. alquem poderia dar uma olhadinha no código abaixo? Agradeço antecipadamente. <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> &lt;script> function mascara(o,f){ v_obj=o v_fun=f setTimeout("execmascara()",1) } function execmascara(){ v_obj.value=v_fun(v_obj.value) } function soLetras(v){ return v.replace(/\d/g,"") //Remove tudo o que não é Letra } function soLetrasMA(v){ v=v.toUpperCase() //Maiúsculas return v.replace(/\d/g,"") //Remove tudo o que não é Letra ->maiusculas } function soLetrasMI(v){ v=v.toLowerCase() //Minusculas return v.replace(/\d/g,"") //Remove tudo o que não é Letra ->minusculas } function soNumeros(v){ return v.replace(/\D/g,"") //Remove tudo o que não é dígito } function telefone(v){ v=v.replace(/\D/g,"") //Remove tudo o que não é dígito v=v.replace(/^(\d\d)(\d)/g,"($1) $2") //Coloca parênteses em volta dos dois primeiros dígitos v=v.replace(/(\d{4})(\d)/,"$1-$2") //Coloca hífen entre o quarto e o quinto dígitos return v } function cpf(v){ v=v.replace(/\D/g,"") //Remove tudo o que não é dígito v=v.replace(/(\d{3})(\d)/,"$1.$2") //Coloca um ponto entre o terceiro e o quarto dígitos v=v.replace(/(\d{3})(\d)/,"$1.$2") //Coloca um ponto entre o terceiro e o quarto dígitos //de novo (para o segundo bloco de números) v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2") //Coloca um hífen entre o terceiro e o quarto dígitos return v } function cep(v){ v=v.replace(/\D/g,"") //Remove tudo o que não é dígito v=v.replace(/^(\d{5})(\d)/,"$1-$2") //Esse é tão fácil que não merece explicações return v } function cnpj(v){ v=v.replace(/\D/g,"") //Remove tudo o que não é dígito v=v.replace(/^(\d{2})(\d)/,"$1.$2") //Coloca ponto entre o segundo e o terceiro dígitos v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3") //Coloca ponto entre o quinto e o sexto dígitos v=v.replace(/\.(\d{3})(\d)/,".$1/$2") //Coloca uma barra entre o oitavo e o nono dígitos v=v.replace(/(\d{4})(\d)/,"$1-$2") //Coloca um hífen depois do bloco de quatro dígitos return v } function romanos(v){ v=v.toUpperCase() //Maiúsculas v=v.replace(/[^IVXLCDM]/g,"") //Remove tudo o que não for I, V, X, L, C, D ou M //Essa é complicada! Copiei daqui: http://www.diveintopython.org/refactoring/refactoring.html while(v.replace(/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,"")!="") v=v.replace(/.$/,"") return v } function data(v){ v=v.replace(/\D/g,"") //Remove tudo o que não é dígito v=v.replace(/(\d{2})(\d)/,"$1-$2") //Coloca um ponto entre o segundo e o terceiro dígitos v=v.replace(/(\d{2})(\d)/,"$1-$2") //Coloca um ponto entre o quarto e o quinto dígitos //v=v.replace(/^[0-3]?\d\/[01]?\d\/(\d{2}|\d{4})$/) v=v.replace(/^((0[1-9]|[12]\d)\-(0[1-9]|1[0-2])|30\-(0[13-9]|1[0-2])|31\-(0[13578]|1[02]))\-\d{4}$/) //v=v.replace(/^(0[1-9]|[012][0-9]|3[01])/\-(0[1-9]|1[012])/\-([12][0-9]{3})/,"") return v } function hora(v){ //v=v.replace(/\D/g,"") //Remove tudo o que não é dígito v=v.replace(/(\d{2})(\d)/,"$1:$2") //Coloca dois ponto entre o segundo e o terceiro dígitos v=v.replace( (/[012][0-9]:[0-5][0-9]/), "") //if v.teste( (/[012][0-9]:[0-5][0-9]/);"certo";"errado") return v } function site(v){ //Esse sem comentarios para que você entenda sozinho;-) v=v.replace(/^http:\/\/?/,"") dominio=v caminho="" if(v.indexOf("/")>-1) dominio=v.split("/")[0] caminho=v.replace(/[^\/]*/,"") dominio=dominio.replace(/[^\w\.\+-:@]/g,"") caminho=caminho.replace(/[^\w\d\+-@:\?&=%\(\)\.]/g,"") caminho=caminho.replace(/([\?&])=/,"$1") if(caminho!="")dominio=dominio.replace(/\.+$/,"") v="http://"+dominio+caminho return v } </script> </head> <body> <p><font size="5"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Validador de campos de formularios</font></strong></font></p> <table width="54%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="33%"><div align="left">Letras: </div></td> <td width="67%"><input name="letras" type="text" id="letras" onkeypress="mascara(this,soLetras)"></td> </tr> <tr> <td><div align="left">Letras Maiusculas: </div> </td> <td><input name="letrasMA" type="text" id="letrasMA" onkeypress="mascara(this,soLetrasMA)" > </td> </tr> <tr> <td><div align="left">Letras Minusculas: </div> </td> <td><input name="letrasMI" type="text" id="letrasMI" onkeypress="mascara(this,soLetrasMI)" > </td> </tr> <tr> <td><div align="left">Números: </div></td> <td><input name="numeros" type="text" id="numeros" onkeypress="mascara(this,soNumeros)" ></td> </tr> <tr> <td><div align="left">Telefone: </div></td> <td><input name="tel" id="tel" onkeypress="mascara(this,telefone)" maxlength="14" ></td> </tr> <tr> <td><div align="left">Cpf: </div></td> <td><input name="cpf" id="cpf" onkeypress="mascara(this,cpf)" maxlength="14" > ainda não testa digito</td> </tr> <tr> <td height="24"><div align="left">Cep: </div></td> <td><input name="cep" id="cep" onkeypress="mascara(this,cep)" maxlength="9" ></td> </tr> <tr> <td><div align="left">Cnpj: </div></td> <td><input name="cnpj" id="cnpj" onkeypress="mascara(this,cnpj)" maxlength="18" > ainda não testa digito</td> </tr> <tr> <td><div align="left">Romanos: </div></td> <td><input name="romanos" id="romanos" onkeypress="mascara(this,romanos)" maxlength="18" ></td> </tr> <tr> <td><div align="left">Data: </div> </td> <td><input name="data" id="data2" onkeypress="mascara(this,data)" maxlength="10" /> só formatação ainda</td> </tr> <tr> <td><div align="left">Hora: </div> </td> <td><input name="hora" id="hora" onkeypress="mascara(this,hora)" maxlength="5" > aqui esta o problema </td> </tr> </table> </body> </html>
×
×
  • Criar Novo...