js/src/devtools/jint/sunspider/string-validate-input.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

michael@0 1 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");
michael@0 2 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);
michael@0 3 colors = new Array("FF","CC","99","66","33","00");
michael@0 4
michael@0 5 var endResult;
michael@0 6
michael@0 7 function doTest()
michael@0 8 {
michael@0 9 endResult = "";
michael@0 10
michael@0 11 // make up email address
michael@0 12 /* BEGIN LOOP */
michael@0 13 for (var k=0;k<4000;k++)
michael@0 14 {
michael@0 15 name = makeName(6);
michael@0 16 (k%2)?email=name+"@mac.com":email=name+"(at)mac.com";
michael@0 17
michael@0 18 // validate the email address
michael@0 19 var pattern = /^[a-zA-Z0-9\-\._]+@[a-zA-Z0-9\-_]+(\.?[a-zA-Z0-9\-_]*)\.[a-zA-Z]{2,3}$/;
michael@0 20
michael@0 21 if(pattern.test(email))
michael@0 22 {
michael@0 23 var r = email + " appears to be a valid email address.";
michael@0 24 addResult(r);
michael@0 25 }
michael@0 26 else
michael@0 27 {
michael@0 28 r = email + " does NOT appear to be a valid email address.";
michael@0 29 addResult(r);
michael@0 30 }
michael@0 31 }
michael@0 32 /* END LOOP */
michael@0 33
michael@0 34 // make up ZIP codes
michael@0 35 /* BEGIN LOOP */
michael@0 36 for (var s=0;s<4000;s++)
michael@0 37 {
michael@0 38 var zipGood = true;
michael@0 39 var zip = makeNumber(4);
michael@0 40 (s%2)?zip=zip+"xyz":zip=zip.concat("7");
michael@0 41
michael@0 42 // validate the zip code
michael@0 43 /* BEGIN LOOP */
michael@0 44 for (var i = 0; i < zip.length; i++) {
michael@0 45 var ch = zip.charAt(i);
michael@0 46 if (ch < "0" || ch > "9") {
michael@0 47 zipGood = false;
michael@0 48 r = zip + " contains letters.";
michael@0 49 addResult(r);
michael@0 50 }
michael@0 51 }
michael@0 52 /* END LOOP */
michael@0 53 if (zipGood && zip.length>5)
michael@0 54 {
michael@0 55 zipGood = false;
michael@0 56 r = zip + " is longer than five characters.";
michael@0 57 addResult(r);
michael@0 58 }
michael@0 59 if (zipGood)
michael@0 60 {
michael@0 61 r = zip + " appears to be a valid ZIP code.";
michael@0 62 addResult(r);
michael@0 63 }
michael@0 64 }
michael@0 65 /* END LOOP */
michael@0 66 }
michael@0 67
michael@0 68 function makeName(n)
michael@0 69 {
michael@0 70 var tmp = "";
michael@0 71 /* BEGIN LOOP */
michael@0 72 for (var i=0;i<n;i++)
michael@0 73 {
michael@0 74 var l = Math.floor(26*Math.random());
michael@0 75 tmp += letters[l];
michael@0 76 }
michael@0 77 /* END LOOP */
michael@0 78 return tmp;
michael@0 79 }
michael@0 80
michael@0 81 function makeNumber(n)
michael@0 82 {
michael@0 83 var tmp = "";
michael@0 84 /* BEGIN LOOP */
michael@0 85 for (var i=0;i<n;i++)
michael@0 86 {
michael@0 87 var l = Math.floor(9*Math.random());
michael@0 88 tmp = tmp.concat(l);
michael@0 89 }
michael@0 90 /* END LOOP */
michael@0 91 return tmp;
michael@0 92 }
michael@0 93
michael@0 94 function addResult(r)
michael@0 95 {
michael@0 96 endResult += "\n" + r;
michael@0 97 }
michael@0 98
michael@0 99 doTest();

mercurial