<< Click to Display Table of Contents >> Validar campos (data) com expressões regulares |
![]() ![]() ![]() |
Default.aspx
onBlur ocorre quando TextBox perde o foco. Vai chamar a função validaDat.
<head runat="server">
<script type="text/javascript" src="util/Validacoes.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lblData" runat="server">Data:</asp:Label>
<br />
<asp:TextBox ID="txtData" class="mask_data" runat="server" onblur="validaDat(this,this.value)"></asp:TextBox>
<br />
<br />
<asp:Label ID="lblCEP" runat="server">CEP:</asp:Label>
<br />
<asp:TextBox ID="txtCEP" runat="server"></asp:TextBox>
</div>
</form>
</body>
Validacoes.js
function validaDat(campo, valor) {
var date = valor;
// data zerada considera valida
if (date == "__/__/__") {
return true;
}
// cria uma expressão regular para validar a entrada de data
var ExpReg = new RegExp("(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[0-9]{2}");
var ardt = new Array;
ardt = date.split("/");
erro = false;
// se não passou pela expressão regular, já cai fora
if (date.search(ExpReg) == -1) {
erro = true;
} // ardt[0] = dia | ardt[1] = mês | ardt[2] = ano
else if (((ardt[1] == 4) || (ardt[1] == 6) || (ardt[1] == 9) || (ardt[1] == 11)) && (ardt[0] > 30))
erro = true;
else if (ardt[1] == 2) {
if ((ardt[0] > 28) && ((ardt[2] % 4) != 0))
erro = true;
if ((ardt[0] > 29) && ((ardt[2] % 4) == 0))
erro = true;
}
// deu erro? mostra mensagem e retorna false
if (erro) {
alert("\"" + valor + "\" não é uma data válida!");
campo.focus();
campo.value = "";
return false;
}
// chegou até aqui, OK
return true;
}