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);
}
[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!