15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)letters = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"); 25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)numbers = new Array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26); 35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)colors = new Array("FF","CC","99","66","33","00"); 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)var endResult; 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)function doTest() 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) endResult = ""; 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // make up email address 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) for (var k=0;k<4000;k++) 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) username = makeName(6); 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) (k%2)?email=username+"@mac.com":email=username+"(at)mac.com"; 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // validate the email address 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var pattern = /^[a-zA-Z0-9\-\._]+@[a-zA-Z0-9\-_]+(\.?[a-zA-Z0-9\-_]*)\.[a-zA-Z]{2,3}$/; 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if(pattern.test(email)) 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var r = email + " appears to be a valid email address."; 235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) addResult(r); 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) else 265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) r = email + " does NOT appear to be a valid email address."; 285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) addResult(r); 295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // make up ZIP codes 335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) for (var s=0;s<4000;s++) 345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var zipGood = true; 365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var zip = makeNumber(4); 375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) (s%2)?zip=zip+"xyz":zip=zip.concat("7"); 385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // validate the zip code 405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) for (var i = 0; i < zip.length; i++) { 415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var ch = zip.charAt(i); 425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (ch < "0" || ch > "9") { 435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) zipGood = false; 445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) r = zip + " contains letters."; 455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) addResult(r); 465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (zipGood && zip.length>5) 495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) zipGood = false; 515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) r = zip + " is longer than five characters."; 525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) addResult(r); 535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (zipGood) 555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) r = zip + " appears to be a valid ZIP code."; 575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) addResult(r); 585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)function makeName(n) 635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var tmp = ""; 655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) for (var i=0;i<n;i++) 665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var l = Math.floor(26*Math.random()); 685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) tmp += letters[l]; 695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return tmp; 715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)function makeNumber(n) 745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var tmp = ""; 765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) for (var i=0;i<n;i++) 775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var l = Math.floor(9*Math.random()); 795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) tmp = tmp.concat(l); 805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return tmp; 825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)function addResult(r) 855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 865c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) endResult += "\n" + r; 875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)doTest(); 90