Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
YSK'nın kullandığı T.C. doğrulama
/*
-------------------------------------------------------------------------
JavaScript Form Validator
Version 2.0.2
Copyright 2003 JavaScript-coder.com. All rights reserved.
You use this script in your Web pages, provided these opening credit
lines are kept intact.
The Form validation script is distributed free from JavaScript-Coder.com
You may please add a link to JavaScript-Coder.com,
making it easy for others to find this script.
Checkout the Give a link and Get a link page:
http://www.javascript-coder.com/links/how-to-link.php
You may not reprint or redistribute this code without permission from
JavaScript-Coder.com.
JavaScript Coder
It precisely codes what you imagine!
Grab your copy here:
http://www.javascript-coder.com/
-------------------------------------------------------------------------
*/
function Validator(frmname)
{
this.formobj=document.forms[frmname];
if(!this.formobj)
{
alert("BUG: couldnot get Form object "+frmname);
return;
}
if(this.formobj.onsubmit)
{
this.formobj.old_onsubmit = this.formobj.onsubmit;
this.formobj.onsubmit=null;
}
else
{
this.formobj.old_onsubmit = null;
}
this.formobj.onsubmit=form_submit_handler;
this.addValidation = add_validation;
this.setAddnlValidationFunction=set_addnl_vfunction;
this.clearAllValidations = clear_all_validations;
}
function set_addnl_vfunction(functionname)
{
this.formobj.addnlvalidation = functionname;
}
function clear_all_validations()
{
for(var itr=0;itr < this.formobj.elements.length;itr++)
{
this.formobj.elements[itr].validationset = null;
}
}
function form_submit_handler()
{
for(var itr=0;itr < this.elements.length;itr++)
{
if(this.elements[itr].validationset &&
!this.elements[itr].validationset.validate())
{
return false;
}
}
if(this.addnlvalidation)
{
str =" var ret = "+this.addnlvalidation+"()";
eval(str);
if(!ret) return ret;
}
return true;
}
function add_validation(itemname,descriptor,errstr)
{
if(!this.formobj)
{
alert("BUG: the form object is not set properly");
return;
}//if
var itemobj = this.formobj[itemname];
if(!itemobj)
{
alert("BUG: Couldnot get the input object named: "+itemname);
return;
}
if(!itemobj.validationset)
{
itemobj.validationset = new ValidationSet(itemobj);
}
itemobj.validationset.add(descriptor,errstr);
}
function ValidationDesc(inputitem,desc,error)
{
this.desc=desc;
this.error=error;
this.itemobj = inputitem;
this.validate=vdesc_validate;
}
function vdesc_validate()
{
if(!V2validateData(this.desc,this.itemobj,this.error))
{
if(this.itemobj.type != "hidden")
this.itemobj.focus();
return false;
}
return true;
}
function ValidationSet(inputitem)
{
this.vSet=new Array();
this.add= add_validationdesc;
this.validate= vset_validate;
this.itemobj = inputitem;
}
function add_validationdesc(desc,error)
{
this.vSet[this.vSet.length]=
new ValidationDesc(this.itemobj,desc,error);
}
function vset_validate()
{
for(var itr=0;itr<this.vSet.length;itr++)
{
if(!this.vSet[itr].validate())
{
return false;
}
}
return true;
}
function validateEmailv2(email)
{
// a very simple email validation checking.
// you can add more complex email checking if it helps
if(email.length <= 0)
{
return true;
}
var splitted = email.match("^(.+)@(.+)$");
if(splitted == null) return false;
if(splitted[1] != null )
{
var regexp_user=/^\"?[\w-_\.]*\"?$/;
if(splitted[1].match(regexp_user) == null) return false;
}
if(splitted[2] != null)
{
var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
if(splitted[2].match(regexp_domain) == null)
{
var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
if(splitted[2].match(regexp_ip) == null) return false;
}// if
return true;
}
return false;
}
function validateTCKimlikNo(tcKimlikNo)
{
// TCKimlikNo gecerlilik kontrolu
if ((tcKimlikNo == null) || (tcKimlikNo.length==0) )
return false;
var tcKimlikNoNumber = parseInt(tcKimlikNo);
var d = new Array(10);
var tmp1 = null;
var tmp = null;
var odd_sum = null;
var even_sum = null;
var total = null;
var chkDigit1 = null;
var chkDigit2 = null;
if (tcKimlikNo.length != 11)
return false;
if (tcKimlikNoNumber>0)
{
tmp = Math.floor(tcKimlikNoNumber / 100);
tmp1 = Math.floor(tcKimlikNoNumber / 100);
for (var i = 9; i > 0; i--)
{
d[i] = tmp1 % 10;
tmp1 = Math.floor(tmp1 / 10);
}
odd_sum = d[9] + d[7]+ d[5]+ d[3]+ d[1];
even_sum = d[8] + d[6] + d[4] + d[2];
total = odd_sum * 3 + even_sum;
chkDigit1 = (10 - (total % 10)) % 10;
odd_sum = chkDigit1 + d[8] + d[6] + d[4] + d[2];
even_sum = d[9] + d[7] + d[5] + d[3] + d[1];
total = odd_sum * 3 + even_sum;
chkDigit2 = (10 - (total % 10)) % 10;
tmp = tmp * 100 + chkDigit1 * 10 + chkDigit2;
if (tmp != tcKimlikNoNumber)
return false;
}
else
return false;
return true;
}
function V2validateData(strValidateStr,objValue,strError)
{
var epos = strValidateStr.search("=");
var command = "";
var cmdvalue = "";
if(epos >= 0)
{
command = strValidateStr.substring(0,epos);
cmdvalue = strValidateStr.substr(epos+1);
}
else
{
command = strValidateStr;
}
switch(command)
{
case "req":
case "required":
{
if(objValue.value.length == 0)
{
if(!strError || strError.length ==0)
{
strError = objValue.name + " : Mecburi alan";
}//if
alert(strError);
return false;
}//if
break;
}//case required
case "maxlength":
case "maxlen":
{
if(eval(objValue.value.length) > eval(cmdvalue))
{
if(!strError || strError.length ==0)
{
strError = objValue.name + " : en fazla"+cmdvalue+" karakter ";
}//if
alert(strError + "\n[Þu anki uzunluk = " + objValue.value.length + " ]");
return false;
}//if
break;
}//case maxlen
case "minlength":
case "minlen":
{
if(eval(objValue.value.length) < eval(cmdvalue))
{
if(!strError || strError.length ==0)
{
strError = objValue.name + " : en az " + cmdvalue + " karakter ";
}//if
alert(strError);
return false;
}//if
break;
}//case minlen
case "alnum":
case "alphanumeric":
{
var charpos = objValue.value.search("[^A-Za-z0-9ðüþöçÐÜÞÝÖÇý]");
if(objValue.value.length > 0 && charpos >= 0)
{
if(!strError || strError.length ==0)
{
strError = objValue.name+": Sadece alfabetik ve sayýsal karakterler girebilirsiniz ";
}//if
alert(strError);
return false;
}//if
break;
}//case alphanumeric
case "num":
case "numeric":
{
var charpos = objValue.value.search("[^0-9]");
if(objValue.value.length > 0 && charpos >= 0)
{
if(!strError || strError.length ==0)
{
strError = objValue.name+": Sadece sayýsal karakterler giriniz. ";
}//if
alert(strError);
return false;
}//if
break;
}//numeric
case "alphabetic":
case "alpha":
{
var charpos = objValue.value.search("[^A-Za-zðüþöçÐÜÞÝÖÇý ]");
if(objValue.value.length > 0 && charpos >= 0)
{
if(!strError || strError.length ==0)
{
strError = objValue.name+": Sadece alfabetik karakterler giriniz. ";
}//if
alert(strError);
return false;
}//if
break;
}//alpha
case "alnumhyphen":
{
var charpos = objValue.value.search("[^A-Za-z0-9\-_ðüþöçÐÜÞÝÖÇý]");
if(objValue.value.length > 0 && charpos >= 0)
{
if(!strError || strError.length ==0)
{
strError = objValue.name+": Sadece þu karakterleri girebilirsiniz A-Z,a-z,0-9,- ve _";
}//if
alert(strError);
return false;
}//if
break;
}
case "email":
{
if(!validateEmailv2(objValue.value))
{
if(!strError || strError.length ==0)
{
strError = objValue.name+": Lütfen geçerli bir Email adresi giriniz";
}//if
alert(strError);
return false;
}//if
break;
}//case email
case "lt":
case "lessthan":
{
if(isNaN(objValue.value))
{
alert(objValue.name+": Sayý olmalý ");
return false;
}//if
if(eval(objValue.value) >= eval(cmdvalue))
{
if(!strError || strError.length ==0)
{
strError = objValue.name + " : "+ cmdvalue + " deðerinden aþaðý olmalýdýr";
}//if
alert(strError);
return false;
}//if
break;
}//case lessthan
case "gt":
case "greaterthan":
{
if(isNaN(objValue.value))
{
alert(objValue.name+": Sayý olmalý ");
return false;
}//if
if(eval(objValue.value) <= eval(cmdvalue))
{
if(!strError || strError.length ==0)
{
strError = objValue.name + " : "+ cmdvalue + " deðerinden büyük olmalýdýr";
}//if
alert(strError);
return false;
}//if
break;
}//case greaterthan
case "regexp":
{
if(objValue.value.length > 0)
{
if(!objValue.value.match(cmdvalue))
{
if(!strError || strError.length ==0)
{
strError = objValue.name+": Geçersiz karakterler bulundu ";
}//if
alert(strError);
return false;
}//if
}
break;
}//case regexp
case "dontselect":
{
if(objValue.selectedIndex == null)
{
alert("BUG: dontselect command for non-select Item");
return false;
}
if(objValue.selectedIndex == eval(cmdvalue))
{
if(!strError || strError.length ==0)
{
strError = objValue.name+": Lütfen bir deðer seçiniz ";
}//if
alert(strError);
return false;
}
break;
}//case dontselect
case "tckimliknovalidation":
{
if(!validateTCKimlikNo(objValue.value))
{
alert(objValue.name+": Geçerli bir kimlik numarasý deðildir.");
return false;
}
break;
}//case tckimliknovalidation
}//switch
return true;
}
/*
Copyright 2003 JavaScript-coder.com. All rights reserved.
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.