Mostrando postagens com marcador javascript. Mostrar todas as postagens
Mostrando postagens com marcador javascript. Mostrar todas as postagens

terça-feira, 17 de março de 2009

Validação de data e máscara de data (formato brasileiro)

Script para validação de data

/* check data */
var dtCh= "/";
var minYear=1900;
var maxYear=2100;
function isInteger(s){
var i;
for (i = 0; i < c =" s.charAt(i);"> "9"))) return false;
}
return true;
}
function stripCharsInBag(s, bag){
var i;
var returnString = "";
for (i = 0; i < c =" s.charAt(i);" 4 ="=" 100 ="=" 400 ="=" i =" 1;" i="=" i="=" i="=" i="=" i="=" daysinmonth =" DaysArray(12)" pos1="dtStr.indexOf(dtCh)" pos2="dtStr.indexOf(dtCh,pos1+1)" strday="dtStr.substring(0,pos1)" strmonth="dtStr.substring(pos1+1,pos2)" stryear="dtStr.substring(pos2+1)" stryr="strYear">1) strDay=strDay.substring(1)
if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
for (var i = 1; i <= 3; i++){ if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
}
month=parseInt(strMonth)
day=parseInt(strDay)
year=parseInt(strYr)
if (pos1==-1 || pos2==-1){
return false
}
if (strMonth.length<1>12){
return false
}
if (strDay.length<1>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
return false
}
if (strYear.length != 4 || year==0 || yearmaxYear){
return false
}
if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
return false
}
return true
}
/* fim check data */


Uso:

data_valor = "14/12/1973";
if(isDate(data_valor)){
alert('data válida');
}
else{
alert('data inválida');
}


Máscara de data

function mascaraData(e,objData){
var key;
var _ret = true;
var data_valor = objData.value;
if(window.event){key = e.keyCode;}
else if(e.which){key = e.which;}
if (key<48>57){_ret = false;}
if(_ret){
if (data_valor.length==2){
data_valor = data_valor + '/';
objData.value = data_valor;
}
else if (data_valor.length==5){
data_valor = data_valor + '/';
objData.value = data_valor;
}
}
if(key == 8 || key==9 || key==13){_ret = true;}
return _ret;
}


Uso:
obs: o script só permite entrada de números

< input name="datanasc" id="datanasc" onkeypress="return mascaraData(event,this)" maxlength="10" type="text">


obs2: coloquei um espaço entre o "<" e o input apenas para exibição do código.

sexta-feira, 22 de agosto de 2008

Alternativa ao onload do JavaScript na BODY

O evento onresdystatechange é disparado a cada momento em que o estado de protidão da página é alterado e retornando o estado atual da página. Em nosso caso utilizamos o estado complete.

document.onreadystatechange = function() {
if (document.readyState == "complete") {
foo(); // Procedimentos desejados
}
}


fonte: JavaScript House

terça-feira, 5 de agosto de 2008

Javascript UTF-8 encode/decode

var Utf8 = {
// public method for url encoding
encode : function (string) {
string = string.replace(/\r\n/g,"\n");
var utftext = "";

for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
}
else if((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
}
else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
},

// public method for url decoding
decode : function (utftext) {
var string = "";
var i = 0;
var c = c1 = c2 = 0;

while ( i < utftext.length ) {
c = utftext.charCodeAt(i);
if (c < 128) {
string += String.fromCharCode(c);
i++;
}
else if((c > 191) && (c < 224)) {
c2 = utftext.charCodeAt(i+1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
}
else {
c2 = utftext.charCodeAt(i+1);
c3 = utftext.charCodeAt(i+2);
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return string;
}
}


demo:
alert(Utf8.encode('São Paulo'));