| « A Business Analyst's Views on QA | 1.21: An Offer You Can't Refuse » |
Thomas Nordlander writes: "The Swedish Church of Scientology's scary personality test contains some pretty awesome JavaScript validation. Consider the ingenious way that they make sure they are dealing with numbers."
"I don't think I've ever seen the N-Replace Zero-Test pattern before..."
function validZip(s)
{
if(trim(document.getElementById("M_land").value.toLowerCase()) != "sverige")
{ return(true); }
s = s.replace(/ /g,"");
s = s.replace(/1/g,"0");
s = s.replace(/2/g,"0");
s = s.replace(/3/g,"0");
s = s.replace(/4/g,"0");
s = s.replace(/5/g,"0");
s = s.replace(/6/g,"0");
s = s.replace(/7/g,"0");
s = s.replace(/8/g,"0");
s = s.replace(/9/g,"0");
if(s == "") { return(true); }
if(s == "00000") { return(true); }
return(false);
}
function validPhone(s)
{
s = trim(s);
s = s.replace(/ /g,"");
s = s.replace(/-/g,"");
s = s.replace(/,/g,"");
if(s.length < 7) return(false);
if(trim(document.getElementById("M_land").value.toLowerCase()) == "sverige")
{
if(s.substr(0,1) != "0") return(false);
if(s.substr(0,2) == "07") return(false);
if(s.substr(1,1) < "1" || s.substr(1,1) > "9") return(false);
}
s = s.replace(/0/g,"");
s = s.replace(/1/g,"");
s = s.replace(/2/g,"");
s = s.replace(/3/g,"");
s = s.replace(/4/g,"");
s = s.replace(/5/g,"");
s = s.replace(/6/g,"");
s = s.replace(/7/g,"");
s = s.replace(/8/g,"");
s = s.replace(/9/g,"");
if(s == "") { return(true); }
return(false);
}
function validAge(s)
{
s = s.replace(/ /g,"");
if(s.substr(0,1) == "0") return(false);
s = s.replace(/1/g,"0");
s = s.replace(/2/g,"0");
s = s.replace(/3/g,"0");
s = s.replace(/4/g,"0");
s = s.replace(/5/g,"0");
s = s.replace(/6/g,"0");
s = s.replace(/7/g,"0");
s = s.replace(/8/g,"0");
s = s.replace(/9/g,"0");
if(s == "00") { return(true); }
return(false);
}
|
If all you have is a hammer, everything looks like a nail.
If all you have is scientology, all of your input looks like body thetans, and it needs to be purged. |
| « A Business Analyst's Views on QA | 1.21: An Offer You Can't Refuse » |