JAVA—咖啡館

          ——歡迎訪問rogerfan的博客,常來《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術,交流工作經(jīng)驗,分享JAVA帶來的快樂!本網(wǎng)站部分轉載文章,如果有版權問題請與我聯(lián)系。

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks
            1 /**   
            2 * 用于表單驗證   
            3 * 支持的標簽:   
            4 * empty   值為空的時候,提示文字,并使當前表單元素獲得焦點   
            5 * equal   值必須等于某個數(shù)值   
            6 * noequal 值必須不等于某個數(shù)值   
            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 * 復選框 是否處于 選中狀態(tài)   
           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                 // 檢查數(shù)值相等的情況 -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                 // 檢查數(shù)值不相等的情況 -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 * 強制驗證表單,用于非提交的處理,執(zhí)行此函數(shù)時,即檢查表單合格性   
          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 閱讀(2099) 評論(1)  編輯  收藏 所屬分類: 【JS/HTML】

          Feedback

          # re: 表單驗證JS文件:validator.js 2014-10-29 20:43 2123
          123  回復  更多評論
            

          主站蜘蛛池模板: 玛纳斯县| 潮安县| 济源市| 建昌县| 西宁市| 萍乡市| 黔西| 田林县| 仁寿县| 威远县| 盐津县| 曲水县| 北流市| 中山市| 夹江县| 蒙阴县| 资中县| 绥宁县| 苏尼特左旗| 德保县| 东至县| 崇文区| 贵定县| 宿州市| 微博| 宜阳县| 广平县| 綦江县| 隆回县| 南投县| 黎川县| 武强县| 许昌市| 洛隆县| 寻甸| 高台县| 江阴市| 临桂县| 中江县| 乐业县| 涟源市|