1 /************************************************* 2 Validator v1.01 3 code by æä½å±±äºº 4 [email protected] 5 http://www.cunite.com 6*************************************************/ 7 Validator = { 8 Require : /.+/, 9 Email : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/, 10 Phone : /^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/, 11 Mobile : /^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/, 12 Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/, 13 IdCard : /^\d{15}(\d{2}[A-Za-z0-9])?$/, 14 Currency : /^\d+(\.\d+)?$/, 15 Number : /^\d+$/, 16 Zip : /^[1-9]\d{5}$/, 17 QQ : /^[1-9]\d{4,8}$/, 18 Integer : /^[-\+]?\d+$/, 19 Double : /^[-\+]?\d+(\.\d+)?$/, 20 English : /^[A-Za-z]+$/, 21 Chinese : /^[\u0391-\uFFE5]+$/, 22 UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/, 23 IsSafe : function(str){return !this.UnSafe.test(str);}, 24 SafeString : "this.IsSafe(value)", 25 Limit : "this.limit(value.length,getAttribute('min'), getAttribute('max'))", 26 LimitB : "this.limit(this.LenB(value), getAttribute('min'), getAttribute('max'))", 27 Date : "this.IsDate(value, getAttribute('min'), getAttribute('format'))", 28 Repeat : "value == document.getElementsByName(getAttribute('to'))[0].value", 29 Range : "getAttribute('min') < value && value < getAttribute('max')", 30 Compare : "this.compare(value,getAttribute('operator'),getAttribute('to'))", 31 Custom : "this.Exec(value, getAttribute('regexp'))", 32 Group : "this.MustChecked(getAttribute('name'), getAttribute('min'), getAttribute('max'))", 33 ErrorItem : [document.forms[0]], 34 ErrorMessage : ["以ä¸åå å°è´éåºå¤±æï¼\t\t\t\t"], 35 Validate : function(theForm, mode){ 36 var obj = theForm || event.srcElement; 37 var count = obj.elements.length; 38 this.ErrorMessage.length = 1; 39 this.ErrorItem.length = 1; 40 this.ErrorItem[0] = obj; 41 for(var i=0;i<count;i++){ 42 with(obj.elements[i]){ 43 var _dataType = getAttribute("dataType"); 44 if(typeof(_dataType) == "object" || typeof(this[_dataType]) == "undefined") continue; this.ClearState(obj.elements[i]); 45 if(getAttribute("require") == "false" && value == "") continue; 46 switch(_dataType){ 47 case "Date" : 48 case "Repeat" : 49 case "Range" : 50 case "Compare" : 51 case "Custom" : 52 case "Group" : 53 case "Limit" : 54 case "LimitB" : 55 case "SafeString" : 56 if(!eval(this[_dataType])) { 57 this.AddError(i, getAttribute("msg")); 58 } 59 break; 60 default : 61 if(!this[_dataType].test(value)){ 62 this.AddError(i, getAttribute("msg")); 63 } 64 break; 65 } 66 } 67 } 68 if(this.ErrorMessage.length > 1){ 69 mode = mode || 1; 70 var errCount = this.ErrorItem.length; 71 switch(mode){ 72 case 2 : 73 for(var i=1;i<errCount;i++) 74 this.ErrorItem[i].style.color = "red"; 75 case 1 : 76 alert(this.ErrorMessage.join("\n")); 77 this.ErrorItem[1].focus(); 78 break; 79 case 3 : 80 for(var i=1;i<errCount;i++){ 81 try{ 82 var span = document.createElement("SPAN"); 83 span.id = "__ErrorMessagePanel"; 84 span.style.color = "red"; 85 this.ErrorItem[i].parentNode.appendChild(span); 86 span.innerHTML = this.ErrorMessage[i].replace(/\d+:/,"*"); 87 } 88 catch(e){alert(e.description);} 89 } 90 this.ErrorItem[1].focus(); 91 break; 92 default : 93 alert(this.ErrorMessage.join("\n")); 94 break; 95 } 96 return false; 97 } 98 return true; 99 }, 100 limit : function(len,min, max){ 101 min = min || 0; 102 max = max || Number.MAX_VALUE; 103 return min <= len && len <= max; 104 }, 105 LenB : function(str){ 106 return str.replace(/[^\x00-\xff]/g,"**").length; 107 }, 108 ClearState : function(elem){ 109 with(elem){ 110 if(style.color == "red") 111 style.color = ""; 112 var lastNode = parentNode.childNodes[parentNode.childNodes.length-1]; 113 if(lastNode.id == "__ErrorMessagePanel") 114 parentNode.removeChild(lastNode); 115 } 116 }, 117 AddError : function(index, str){ 118 this.ErrorItem[this.ErrorItem.length] = this.ErrorItem[0].elements[index]; 119 this.ErrorMessage[this.ErrorMessage.length] = this.ErrorMessage.length + ":" + str; 120 }, 121 Exec : function(op, reg){ 122 return new RegExp(reg,"g").test(op); 123 }, 124 compare : function(op1,operator,op2){ 125 switch (operator) { 126 case "NotEqual":
127 return (op1 != op2); 128 case "GreaterThan": 129 return (op1 > op2); 130 case "GreaterThanEqual": 131 return (op1 >= op2); 132 case "LessThan": 133 return (op1 < op2); 134 case "LessThanEqual": 135 return (op1 <= op2); 136 default: 137 return (op1 == op2); 138 } 139 }, 140 MustChecked : function(name, min, max){ 141 var groups = document.getElementsByName(name); 142 var hasChecked = 0; 143 min = min || 1; 144 max = max || groups.length; 145 for(var i=groups.length-1;i>=0;i--) 146 if(groups[i].checked) hasChecked++; 147 return min <= hasChecked && hasChecked <= max; 148 }, 149 IsDate : function(op, formatString){ 150 formatString = formatString || "ymd"; 151 var m, year, month, day; 152 switch(formatString){ 153 case "ymd" : 154 m = op.match(new RegExp("^((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})$")); 155 if(m == null ) return false; 156 day = m[6]; 157 month = m[5]--; 158 year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10)); 159 break; 160 case "dmy" : 161 m = op.match(new RegExp("^(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))$")); 162 if(m == null ) return false; 163 day = m[1]; 164 month = m[3]--; 165 year = (m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10)); 166 break; 167 default : 168 break; 169 } 170 if(!parseInt(month)) return false; 171 month = month==12 ?0:month; 172 var date = new Date(year, month, day); 173 return (typeof(date) == "object" && year == date.getFullYear() && month == date.getMonth() && day == date.getDate()); 174 function GetFullYear(y){return ((y<30 ? "20" : "19") + y)|0;} 175 } 176 }
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.