ActionScript 3 Validador
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ActionScript 3 Validador相关的知识,希望对你有一定的参考价值。
package com.utils
{
/**
* @author Timo
*/
public class Validator
{
public static const DOT_DOT:String = "dotDot";
public static const DOT_DASH:String = "dotDash";
public static const DOT_SPACE:String = "dotSpace";
public static const DASH_DASH:String = "dashDash";
public static const DASH_DOT:String = "dashDot";
public static const DASH_SPACE:String = "dashSpace";
public static const SPACE_SPACE:String = "spaceSpace";
public static const SPACE_DOT:String = "spaceDot";
public static const SPACE_DASH:String = "spaceDash";
public static const NONE:String = "none";
/**
* Valida um Email. O id do email pode ter caracteres alphanuméricos e mais os seguintes (opicionais):
* '-', '.' e '_'.
* @param email A String do email.
* @return Retorna true se o email é válido, false se não.
*/
public static function validateEmail(email:String):Boolean
{
var emailIdRegex:RegExp = /^[a-z0-9]+([._][a-z0-9]+)*@/i;
if(!emailIdRegex.test(email))
{
return false;
}
var emailDomain:String = email.replace(emailIdRegex, "");
if(!Validator.validateDomain(emailDomain))
{
return false;
}
return true;
}
/**
* Valida um domÃÂnio limpo, ou seja, sem 'www' e sem '/' no final. Exemplo: 'google.com.br'
* @param domain A String do domÃÂnio.
* @return Retorna true se o domÃÂnio é válido, false se não.
*/
public static function validateDomain(domain:String):Boolean
{
var domainRegex:RegExp = /^[a-z0-9][-a-z0-9]*(\.[a-z]{2,6}){1,2}$/i;
if(!domainRegex.test(domain))
{
return false;
}
return true;
}
/**
* Valida DDD de 2 dÃÂgitos com um zero opcional no começo:
* @param ddd A String do DDD.
* @return Retorna true se o DDD é válido, false se não.
*/
public static function validateDDD(ddd:String):Boolean
{
var dddRegex:RegExp = /^0?\d{2}$/;
if(!dddRegex.test(ddd))
{
return false;
}
return true;
}
/**
* Valida um telefone contendo 8 dÃÂgitos e um dos seguintes separadores (opcionais):
* '-' e ' '.
* @param phone A String do Telefone.
* @return Retorna true se o Telefone é válido, false se não.
*/
public static function validatePhone(phone:String):Boolean
{
var phoneRegex:RegExp = /^\d{4}[-\s]?\d{4}$/;
if(!phoneRegex.test(phone))
{
return false;
}
return true;
}
/**
* Valida um telefone celular contendo 8 dÃÂgitos e um dos seguintes separadores (opcionais):
* '-' e ' '.
* @param cellphone A String do telefone celular.
* @return Retorna true se o telefone celular é válido, false se não.
*/
public static function validateCellphone(cellphone:String):Boolean
{
var phoneRegex:RegExp = /^[6-9]\d{3}[-\s]?\d{4}$/;
if(!phoneRegex.test(cellphone))
{
return false;
}
return true;
}
/**
* Valida um CEP Brasileiro contendo 8 dÃÂgitos e um dos seguintes separadores (opcionais):
* '.', '-' e ' '.
* @param cep A String do CEP.
* @return Retorna true se o CEP é válido, false se não.
*/
public static function validateCEPBrasileiro(cep:String):Boolean
{
var cepRegex:RegExp = /^\d{2}[-.\s]?\d{3}[-.\s]?\d{3}$/;
if(!cepRegex.test(cep))
{
return false;
}
return true;
}
/**
* Valida um CPF contendo números e os seguintes separadores (opcionais):
* '-', '.' e ' '.
* @param cpf A String do CPF.
* @return Retorna true se o CPF é válido, false se não.
*/
public static function validateCPF(cpf:String):Boolean
{
var cpfRegex:RegExp = /^\d{3}[-. ]?\d{3}[-. ]?\d{3}[-. ]?\d{2}$/;
if(!cpfRegex.test(cpf))
{
return false;
}
var cc:String = Validator.replaceString(cpf, new RegExp(/[-. ]/));
var firstDigit:Number = 0;
var secondDigit:Number = 0;
var firstSum:Number = Validator.makeSum(cc.substr(0, 9));
var firstRest:Number = firstSum % 11;
if(firstRest >= 2)
{
firstDigit = 11 - firstRest;
}
var secondSum:Number = Validator.makeSum(cc.substr(0, 9), 11);
secondSum += firstDigit * 2;
var secondRest:Number = secondSum % 11;
if(secondRest >= 2)
{
secondDigit = 11 - secondRest;
}
if(Number(cc.charAt(9)) == firstDigit && Number(cc.charAt(10)) == secondDigit)
{
return true;
}
return false;
}
/**
* Gera um CPF válido.
* @param caracterSeparation Uma string que diz por que caracteres o CPF retornado vai ser separado. PossÃÂveis valores são as constantes desta classe.
* @return o CPF gerado.
*/
public static function generateValidCPF(caracterSeparation:String = "dotDash"):String
{
var cc:String = "";
for(var i:uint = 0; i < 9; i++)
{
cc += String(Math.round(Math.random() * 9));
}
var firstDigit:Number = 0;
var secondDigit:Number = 0;
var firstSum:Number = Validator.makeSum(cc);
var firstRest:Number = firstSum % 11;
if(firstRest >= 2)
{
firstDigit = 11 - firstRest;
}
var secondSum:Number = Validator.makeSum(cc, 11);
secondSum += firstDigit * 2;
var secondRest:Number = secondSum % 11;
if(secondRest >= 2)
{
secondDigit = 11 - secondRest;
}
cc += String(firstDigit) + String(secondDigit);
switch(caracterSeparation)
{
case DOT_DOT :
cc = Validator.putCaracters(cc, ".", ".", ".");
break;
case DOT_DASH :
cc = Validator.putCaracters(cc, ".", ".", "-");
break;
case DOT_SPACE :
cc = Validator.putCaracters(cc, ".", ".", " ");
break;
case DASH_DASH :
cc = Validator.putCaracters(cc, "-", "-", "-");
break;
case DASH_DOT :
cc = Validator.putCaracters(cc, "-", "-", ".");
break;
case DASH_SPACE :
cc = Validator.putCaracters(cc, "-", "-", " ");
break;
case SPACE_SPACE :
cc = Validator.putCaracters(cc, " ", " ", " ");
break;
case SPACE_DOT :
cc = Validator.putCaracters(cc, " ", " ", ".");
break;
case SPACE_DASH :
cc = Validator.putCaracters(cc, " ", " ", "-");
break;
default :
break;
}
return cc;
}
/**
* Valida um CNPJ contendo números e os seguintes separadores (opcionais):
* '-', '.', '/' (antes dos últimos 6 caracteres) e ' '.
* @param cnpj A String do CNPJ.
* @return Retorna true se o CNPJ é válido, false se não.
*/
public static function validateCNPJ(cnpj:String):Boolean
{
var cnpjRegex:RegExp = /^\d{2}[-. \/]?\d{3}[-. \/]?\d{3}[-. \/]?\d{4}[-. \/]?\d{2}$/;
if(!cnpjRegex.test(cnpj))
{
return false;
}
var cc:String = Validator.replaceString(cnpj, new RegExp(/[-. \/]/));
var firstDigit:Number = 0;
var secondDigit:Number = 0;
var firstSum:Number = Validator.makeSum(cc.substr(0, 4), 5) + Validator.makeSum(cc.substr(4, 8), 9);
var firstRest:Number = firstSum % 11;
if(firstRest >= 2)
{
firstDigit = 11 - firstRest;
}
var secondSum:Number = Validator.makeSum(cc.substr(0, 5), 6) + Validator.makeSum(cc.substr(5, 7), 9);
secondSum += firstDigit * 2;
var secondRest:Number = secondSum % 11;
if(secondRest >= 2)
{
secondDigit = 11 - secondRest;
}
if(Number(cc.charAt(12)) == firstDigit && Number(cc.charAt(13)) == secondDigit)
{
return true;
}
return false;
}
/**
* Gera um CNPJ válido.
* @param includePunctuation Um Boolean que define se o CNPJ gerado vai conter a pontuação padrao (00.000.000/0000-00). Coloque false se quiser apenas o número.
* @return o CNPJ gerado.
*/
public static function generateValidCNPJ(includePunctuation:Boolean = true):String
{
var cc:String = "";
for(var i:uint = 0; i < 8; i++)
{
cc += String(Math.round(Math.random() * 9));
}
cc += "0001";
var firstDigit:Number = 0;
var secondDigit:Number = 0;
var firstSum:Number = Validator.makeSum(cc.substr(0, 4), 5) + Validator.makeSum(cc.substr(4, 8), 9);
var firstRest:Number = firstSum % 11;
if(firstRest >= 2)
{
firstDigit = 11 - firstRest;
}
var secondSum:Number = Validator.makeSum(cc.substr(0, 5), 6) + Validator.makeSum(cc.substr(5, 7), 9);
secondSum += firstDigit * 2;
var secondRest:Number = secondSum % 11;
if(secondRest >= 2)
{
secondDigit = 11 - secondRest;
}
cc += String(firstDigit) + String(secondDigit);
if(includePunctuation)
{
cc = cc.substr(0, 2) + "." + cc.substr(2, 3) + "." + cc.substr(5, 3) + "/" + cc.substr(8, 4) + "-" + cc.substr(12);
}
return cc;
}
/**
* Limpa (deixa apenas os números, útil para guardar num banco de dados) uma string contendo números e os seguintes caracteres (opcionais):
* '-', '.', ' ', '_', '/', '(' e ')'.
* @param string A String a ser limpada.
* @return Retorna a string limpa convertida em Number
*/
public static function cleanNumberString(string:String):Number
{
var stringChecker:RegExp = /^\d+$/;
var cs:String = Validator.replaceString(string, new RegExp(/[-. _()\/]/));
if(!stringChecker.test(cs))
{
throw new Error("Sua string contém caracteres irreconhecidos pela função. Os caracteres reconhecidos são: '-', '.', ' ', '_', '(' e ')'.");
}
return Number(cs);
}
/**
* Checa se uma string contém apenas caracteres numéricos
* @param string A String a ser checada.
* @return Retorna true se a string contém apenas caracteres numéricos, false se não.
*/
public static function isNumber(string:String):Boolean
{
var digitChecker:RegExp = /^\d+$/;
if(!digitChecker.test(string))
{
return false;
}
return true;
}
/**
* Checa se uma string contém apenas caracteres alfabéticos e/ou numéricos
* @param string A String a ser checada.
* @return Retorna true se a string contém apenas caracteres alfabéticos e/ou numéricos, false se não.
*/
public static function isAlphaNumeric(string:String):Boolean
{
var caracterChecker:RegExp = /^\w+$/;
if(caracterChecker.test(string) && string.search("_") === -1)
{
return true;
}
return false;
}
/**
* Checa se uma string contém um mÃÂnimo de min caracteres e um máximo de max caracteres
* @param string A String a ser checada.
* @param min O mÃÂnimmo de caracteres.
* @param max O máximo de caracteres.
* @return Retorna true se a string um número de caracteres entre min e max, false se não.
*/
public static function minMax(string:String, min:uint = 1, max:uint = 30):Boolean
{
if(string.length < min || string.length > max)
{
return false;
}
return true;
}
private static function makeSum(numClean:String, startAt:uint = 10):Number
{
var returnVal:Number = 0;
for(var i:uint = 0; i < numClean.length; i++)
{
returnVal += Number(numClean.charAt(i)) * (startAt - i);
}
return returnVal;
}
private static function replaceString(stringToReplace:String, replacePattern:RegExp, replacePatternsByThis:String = "", maxReplaces:uint = 200):String
{
for(var i:uint = 0; i < maxReplaces; i++)
{
if(stringToReplace.search(replacePattern) != -1)
{
stringToReplace = stringToReplace.replace(replacePattern, replacePatternsByThis);
}
if(stringToReplace.search(replacePattern) == -1)
{
break;
}
}
return stringToReplace;
}
private static function putCaracters(string:String, fc:String, sc:String, tc:String):String
{
return string.substr(0, 3) + fc + string.substr(3, 3) + sc + string.substr(6, 3) + tc + string.substr(9, 2);
}
}
}
以上是关于ActionScript 3 Validador的主要内容,如果未能解决你的问题,请参考以下文章
javascript Validador DNI,CIF y NIE
javascript rut chileno validador y mascara
ActionScript 3 使用ActionScript 3暂停框架
ActionScript 3 ActionScript 3延迟功能