JAVA—咖啡馆

——欢迎访问rogerfan的博客,常来《JAVA——咖啡馆》坐坐,喝杯浓香的咖啡,彼此探讨一下JAVA技术,交流工作经验,分享JAVA带来的快乐!本网站部分转载文章,如果有版权问题请与我联系。

BlogJava 首页 新随笔 联系 聚合 管理
  447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks
  1 /**   
  2 * 用于表单验证   
  3 * 支持的标签:   
  4 * empty   值为空的时候,提示文字,并使当前表单元素获得焦点   
  5 * equal   值必须等于某个数值   
  6 * noequal 值必须不等于某个数值   
  7 * equalo  值不惜等于某个对象的值   
  8 * ctype   检查值的类型,支持email、tel、english、mobile、nickname几种格式   
  9 */
 10 
 11 /**   
 12 * 去除字符串两边的空格   
 13 */
 14 function trim(str) {
 15         return str.replace(/(^\s*)|(\s*$)/g, "");
 16 }
 17 function ltrim(str) {
 18         return str.replace(/(^\s*)/g, "");
 19 }
 20 function rtrim(str) {
 21         return str.replace(/(\s*$)/g, "");
 22 }
 23 function isMobile(mobile) {
 24         return (/^(?:13\d|15\d|18\d)-?\d{5}(\d{3}|\*{3})$/).test(trim(mobile));
 25 }
 26 function isEmail(strValue) {
 27         return (/^[\w-\.]+@[\w-]+(\.(\w)+)*(\.(\w){2,4})$/).test(trim(strValue));
 28 }
 29 function isPhone(strValue) {
 30         return (/^\d{3}-?\d{8}|\d{4}-?\d{7}$/).test(trim(strValue));
 31 }
 32 function isTel(str) {
 33         var reg = /^\d{7,8}$/;
 34         var patt = new RegExp(reg);
 35         return patt.test(str);
 36 }
 37 /**   
 38 * 获取单选框的值   
 39 * @param radioName   
 40 * @return   
 41 */
 42 function getRadioValue(radioName) {
 43         var obj = document.getElementsByName(radioName);
 44         var objLen = obj.length;
 45         var i;
 46         for (i = 0; i < objLen; i++) {
 47                 if (obj[i].checked == true) {
 48                         return obj[i].value;
 49                 }
 50         }
 51         return null;
 52 }
 53 /**   
 54 * 获取复选框的值   
 55 */
 56 function getCheckboxValue(radioName) {
 57         var obj = document.getElementsByName(radioName);
 58         var objLen = obj.length;
 59         var i;
 60         var result = "";
 61         for (i = 0; i < objLen; i++) {
 62                 if (obj[i].checked == true) {
 63                         result += obj[i].value + ",";
 64                 }
 65         }
 66         return result;
 67 }
 68 /**   
 69 * 复选框 是否处于 选中状态   
 70 */
 71 function CheckboxToChecked(eleName, cValue) {
 72         var obj = document.getElementsByName(eleName);
 73         var objLen = obj.length;
 74         var i;
 75         var result = "";
 76         for (i = 0; i < objLen; i++) {
 77                 if (obj[i].value == cValue) {
 78                         obj[i].checked = true;
 79                 } else {
 80                         obj[i].checked = false;
 81                 }
 82         }
 83         return result;
 84 }
 85 // checkBox至少选中一项  
 86 function chkCheckBoxChs(objNam, txt) {
 87         var obj = document.getElementsByName(objNam);
 88         var objLen = obj.length;
 89         var num = 0;
 90         for (i = 0; i < objLen; i++) {
 91                 if (obj[i].checked == true) {
 92                         num++;
 93                 }
 94         }
 95         if (num == 0) {
 96                 alert(txt);
 97                 return false;
 98         }
 99         return true;
100 }
101 function isEnglish(strValue) {
102         var reg = /^[A-Za-z0-9]*$/gi;
103         return reg.test(trim(strValue));
104 }
105 function isNickname(strValue) {
106         var reg = /^[a-z-_\u4e00-\u9fa5]*$/gi;
107         return reg.test(trim(strValue));
108 }
109 function ispassword(strValue) {
110         var reg = strValue.length;
111         if (reg >= 6 && reg <= 12) {
112                 return true;
113         } else {
114                 return false;
115         }
116 }
117 function isarea(strValue) {
118         var reg = /^0\d{2,3}$/;
119         var patt = new RegExp(reg);
120         return patt.test(strValue);
121 }
122 //自定义过滤器 
123 var custom_filter = new Array;
124 function checkform(event, oform) {
125         event = event ? event: window.event;
126         if (oform == undefined || oform == nullvar oform = event.srcElement ? event.srcElement: event.target;
127         var elms = oform.elements;
128         var qs;
129         var attr;
130         var other_obj;
131         var value;
132         for (var i = 0; i < elms.length; i++) {
133                 // 为空的情况 -empty                 
134                 if (elms[i].getAttribute('empty') && elms[i].value == '') {
135                         elms[i].focus();
136                         alert(elms[i].getAttribute('empty'));
137                         return false;
138                 }
139                 // 检查数值相等的情况 -equal                 
140                 if (elms[i].getAttribute('equal')) {
141                         attr = elms[i].getAttribute('equal');
142                         qs = attr.split('|');
143                         if (elms[i].value != qs[0]) {
144                                 elms[i].focus();
145                                 alert(qs[1]);
146                                 return false;
147                         }
148                 }
149                 // 检查数值不相等的情况 -noequal                  
150                 if (elms[i].getAttribute('noequal')) {
151                         attr = elms[i].getAttribute('noequal');
152                         qs = attr.split('|');
153                         if (elms[i].value == qs[0]) {
154                                 elms[i].focus();
155                                 alert(qs[1]);
156                                 return false;
157                         }
158                 }
159                 // 检查对象相等的情况 -equalo                 
160                 if (elms[i].getAttribute('equalo')) {
161                         attr = elms[i].getAttribute('equalo');
162                         qs = attr.split('|');
163                         other_obj = document.getElementById(qs[0]);
164                         if (elms[i].value != other_obj.value) {
165                                 elms[i].focus();
166                                 alert(qs[1]);
167                                 return false;
168                         }
169                 }
170                 // 检查值的类型 -ctype                  
171                 if (elms[i].getAttribute('ctype')) {
172                         attr = elms[i].getAttribute('ctype');
173                         qs = attr.split('|');
174                         if (qs[0== 'email' && !isEmail(elms[i].value)) {
175                                 elms[i].focus();
176                                 alert(qs[1]);
177                                 return false;
178                         } else if (qs[0== 'Tel' && !isTel(elms[i].value)) {
179                                 elms[i].focus();
180                                 alert(qs[1]);
181                                 return false;
182                         } else if (qs[0== 'nickname' && !isNickname(elms[i].value)) {
183                                 elms[i].focus();
184                                 alert(qs[1]);
185                                 return false;
186                         } else if (qs[0== 'password' && !ispassword(elms[i].value)) {
187                                 elms[i].focus();
188                                 alert(qs[1]);
189                                 return false;
190                         } else if (qs[0== 'area' && !isarea(elms[i].value)) {
191                                 elms[i].focus();
192                                 alert(qs[1]);
193                                 return false;
194                         }
195                 }
196                 for (var j = 0; j < custom_filter.length; j++) {
197                         if (elms[i].id == custom_filter[j].name || elms[i].name == custom_filter[j].name) {
198                                 if (custom_filter[j].callback(elms[i]) == false) {
199                                         elms[i].focus();
200                                         alert(custom_filter[j].msg);
201                                         return false;
202                                 }
203                         }
204                 }
205         }
206         return true;
207 }
208 /**   
209 * 增加自定义过滤条件   
210 * @return   
211 */
212 function add_filter(name, msg, callback) {
213         custom_filter.push({
214                 'name': name,
215                 'msg': msg,
216                 'callback': callback
217         });
218 }
219 /**   
220 * 验证表单   
221 * @param id   
222 * @return   
223 */
224 function validator(id) {
225         if (id == nullreturn false;
226         var oform = document.getElementById(id);
227         oform.onsubmit = checkform;
228 }
229 /**   
230 * 强制验证表单,用于非提交的处理,执行此函数时,即检查表单合格性   
231 * @param id   
232 * @return   
233 */
234 function validator_force(id) {
235         var oform = document.getElementById(id);
236         return checkform(null, oform);
237 }
posted on 2010-10-12 10:20 rogerfan 阅读(2086) 评论(1)  编辑  收藏 所属分类: 【JS/HTML】

Feedback

# re: 表单验证JS文件:validator.js 2014-10-29 20:43 2123
123  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: