1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/build/pgo/js-input/string-validate-input.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,139 @@ 1.4 +<!DOCTYPE html> 1.5 +<head> 1.6 +<!-- 1.7 + Copyright (C) 2007 Apple Inc. All rights reserved. 1.8 + 1.9 + Redistribution and use in source and binary forms, with or without 1.10 + modification, are permitted provided that the following conditions 1.11 + are met: 1.12 + 1. Redistributions of source code must retain the above copyright 1.13 + notice, this list of conditions and the following disclaimer. 1.14 + 2. Redistributions in binary form must reproduce the above copyright 1.15 + notice, this list of conditions and the following disclaimer in the 1.16 + documentation and/or other materials provided with the distribution. 1.17 + 1.18 + THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 1.19 + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1.20 + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 1.21 + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 1.22 + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 1.23 + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 1.24 + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 1.25 + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 1.26 + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 1.27 + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1.28 + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1.29 +--> 1.30 + 1.31 +<title>SunSpider string-validate-input</title> 1.32 + 1.33 +</head> 1.34 + 1.35 +<body> 1.36 +<h3>string-validate-input</h3> 1.37 +<div id="console"> 1.38 +</div> 1.39 + 1.40 +<script> 1.41 + 1.42 +var _sunSpiderStartDate = new Date(); 1.43 + 1.44 +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"); 1.45 +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); 1.46 +colors = new Array("FF","CC","99","66","33","00"); 1.47 + 1.48 +var endResult; 1.49 + 1.50 +function doTest() 1.51 +{ 1.52 + endResult = ""; 1.53 + 1.54 + // make up email address 1.55 + for (var k=0;k<4000;k++) 1.56 + { 1.57 + name = makeName(6); 1.58 + (k%2)?email=name+"@mac.com":email=name+"(at)mac.com"; 1.59 + 1.60 + // validate the email address 1.61 + var pattern = /^[a-zA-Z0-9\-\._]+@[a-zA-Z0-9\-_]+(\.?[a-zA-Z0-9\-_]*)\.[a-zA-Z]{2,3}$/; 1.62 + 1.63 + if(pattern.test(email)) 1.64 + { 1.65 + var r = email + " appears to be a valid email address."; 1.66 + addResult(r); 1.67 + } 1.68 + else 1.69 + { 1.70 + r = email + " does NOT appear to be a valid email address."; 1.71 + addResult(r); 1.72 + } 1.73 + } 1.74 + 1.75 + // make up ZIP codes 1.76 + for (var s=0;s<4000;s++) 1.77 + { 1.78 + var zipGood = true; 1.79 + var zip = makeNumber(4); 1.80 + (s%2)?zip=zip+"xyz":zip=zip.concat("7"); 1.81 + 1.82 + // validate the zip code 1.83 + for (var i = 0; i < zip.length; i++) { 1.84 + var ch = zip.charAt(i); 1.85 + if (ch < "0" || ch > "9") { 1.86 + zipGood = false; 1.87 + r = zip + " contains letters."; 1.88 + addResult(r); 1.89 + } 1.90 + } 1.91 + if (zipGood && zip.length>5) 1.92 + { 1.93 + zipGood = false; 1.94 + r = zip + " is longer than five characters."; 1.95 + addResult(r); 1.96 + } 1.97 + if (zipGood) 1.98 + { 1.99 + r = zip + " appears to be a valid ZIP code."; 1.100 + addResult(r); 1.101 + } 1.102 + } 1.103 +} 1.104 + 1.105 +function makeName(n) 1.106 +{ 1.107 + var tmp = ""; 1.108 + for (var i=0;i<n;i++) 1.109 + { 1.110 + var l = Math.floor(26*Math.random()); 1.111 + tmp += letters[l]; 1.112 + } 1.113 + return tmp; 1.114 +} 1.115 + 1.116 +function makeNumber(n) 1.117 +{ 1.118 + var tmp = ""; 1.119 + for (var i=0;i<n;i++) 1.120 + { 1.121 + var l = Math.floor(9*Math.random()); 1.122 + tmp = tmp.concat(l); 1.123 + } 1.124 + return tmp; 1.125 +} 1.126 + 1.127 +function addResult(r) 1.128 +{ 1.129 + endResult += "\n" + r; 1.130 +} 1.131 + 1.132 +doTest(); 1.133 + 1.134 + 1.135 +var _sunSpiderInterval = new Date() - _sunSpiderStartDate; 1.136 + 1.137 +document.getElementById("console").innerHTML = _sunSpiderInterval; 1.138 +</script> 1.139 + 1.140 + 1.141 +</body> 1.142 +</html>