1function PageQuery(q) { 2 if (q.length > 1) 3 this.q = q.substring(1, q.length); else 4 this.q = null; this.keyValuePairs = new Array(); if (q) { for (var i = 0; i < this.q.split("&").length; i++) { this.keyValuePairs[i] = this.q.split("&")[i]; } } 5 this.getKeyValuePairs = function () { return this.keyValuePairs; }; 6 this.getValue = function (s) { 7 for (var j = 0; j < this.keyValuePairs.length; j++) { 8 if (this.keyValuePairs[j].split("=")[0].toLowerCase() === s.toLowerCase()) 9 return this.keyValuePairs[j].split("=")[1]; 10 } 11 return false; 12 }; 13 this.getParameters = function () { 14 var a = new Array(this.getLength()); for (var j = 0; j < this.keyValuePairs.length; j++) { a[j] = this.keyValuePairs[j].split("=")[0]; } 15 return a; 16 }; 17 this.getLength = function () { return this.keyValuePairs.length; }; 18} 19function queryString(key) { var page = new PageQuery(window.location.search); return unescape(page.getValue(key)); } 20 21function getCookie(cname) { 22 var name = cname + "="; 23 var ca = document.cookie.split(';'); 24 for (var i = 0; i < ca.length; i++) { 25 var c = ca[i]; 26 while (c.charAt(0) === ' ') { 27 c = c.substring(1); 28 } 29 if (c.indexOf(name) === 0) { 30 return c.substring(name.length, c.length); 31 } 32 } 33 return ""; 34} 35 36const validateEmail = (email) => { 37 return String(email) 38 .toLowerCase() 39 .match( 40 /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ 41 ); 42};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.