和風(fēng)細(xì)雨

          世上本無難事,心以為難,斯乃真難。茍不存一難之見于心,則運(yùn)用之術(shù)自出。

          在JavaScript中使用正則表達(dá)式驗(yàn)證表單字段

          JavaScript中對(duì)正則表達(dá)式的支持
          正則表達(dá)式在JS的最大用處就是驗(yàn)證表單字段,如驗(yàn)證數(shù)字,驗(yàn)證郵件和驗(yàn)證漢字等。
          JavaScript中對(duì)正則表達(dá)式的支持是通過RegExp類實(shí)現(xiàn)的。你可以以如下方式建立一個(gè)正則表達(dá)式:
          var regex=new RegExp("^[1-9]+\\d*$");
          而驗(yàn)證的方法是regex.test(str),它返回str是否符合regex的結(jié)果。

          JS中正則表達(dá)式和Java中的異同。
          JavaScript
          1.建立:
          var regex=new RegExp("^[1-9]+\\d*$");
          2.驗(yàn)證
          return regex.test(str);
          3.寫法上,要驗(yàn)證字符串,JS中必須把起始符號(hào)^和結(jié)束符號(hào)$寫全,否則就是包含驗(yàn)證而不是全匹配驗(yàn)證.除此外其它部分都是一致的.

          Java
          1.建立:
          String regex="\\d*";
          2.驗(yàn)證:
          return Pattern.matches(regex,text);
          3.寫法上,JAVA中進(jìn)行全匹配驗(yàn)證不需寫全起始符號(hào)^和結(jié)束符號(hào)$.

          一個(gè)完整的驗(yàn)證過程

          表單元素:
          <input type="text" name="positiveinteger"
          value="1" />

          表單提交之前的驗(yàn)證函數(shù):
          var positiveinteger=$("positiveinteger").value;
          if(isPositiveInteger(positiveinteger)==false){
               $("positiveinteger").focus();
               $("checkMsg").innerHTML="正整數(shù)驗(yàn)證不通過";
               return false;
          }
          else{
               $("checkMsg").innerHTML="正整數(shù)驗(yàn)證通過";
          }

          驗(yàn)證函數(shù):
          function isPositiveInteger(str){
               var regex=new RegExp("^[1-9]+\\d*$");
               return regex.test(str);
          }


          常用驗(yàn)證函數(shù)

          /**
          * 正整數(shù)驗(yàn)證*/
          function isPositiveInteger(str){
            var regex=new RegExp("^[1-9]+\\d*$");
            return regex.test(str);
          }

          /**
          * 負(fù)整數(shù)驗(yàn)證
          */
          function isNegativeInteger(str){
            var regex=new RegExp("^-{1}\\d+$");
            return regex.test(str);
          }

          /**
          * 非負(fù)整數(shù)驗(yàn)證
          */
          function isNonnegativeInteger(str){
            var regex=new RegExp("^\\d+$");
            return regex.test(str);
          }

          /**
          * 整數(shù)驗(yàn)證
          */
          function isInteger(str){
            var regex=new RegExp("^-?\\d+$");
            return regex.test(str);
          }

          /**
          * 有理數(shù)驗(yàn)證
          */
          function isRationalNumber(str){
            var regex=new RegExp("^-?\\d+(\\.*)(\\d*)$");
            return regex.test(str);
          }

          /**
          * 英語字母驗(yàn)證
          */
          function isLetter(str){
            var regex=new RegExp("^[a-zA-Z]+$");
            return regex.test(str);
          }

          /**
          * 英數(shù)字驗(yàn)證
          */
          function isLetterOrInteger(str){
            var regex=new RegExp("^[a-zA-Z0-9]+$");
            return regex.test(str);
          }

          /**
          * 郵件驗(yàn)證
          */
          function isEmail(str){
            var regex=new RegExp("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$");
            return regex.test(str);
          }

          /**
          * 漢字驗(yàn)證
          */
          function isCharacter(str){
            var regex=new RegExp("^[\u4E00-\u9FA5]+$");
            return regex.test(str);
          }

          /**
          * 貨幣驗(yàn)證
          */
          function isCurrency(str){
            return str.search("^\\d+(\\.\\d{0,2})*$")==0;
          }

          posted on 2008-03-02 16:00 和風(fēng)細(xì)雨 閱讀(2017) 評(píng)論(2)  編輯  收藏 所屬分類: JavaScript

          評(píng)論

          # re: 在JavaScript中使用正則表達(dá)式驗(yàn)證表單字段 2012-04-07 23:14 lin

          樓主太讓我感動(dòng)了,謝謝  回復(fù)  更多評(píng)論   

          # re: 在JavaScript中使用正則表達(dá)式驗(yàn)證表單字段[未登錄] 2014-08-07 10:54 squirrel

          謝謝樓主!  回復(fù)  更多評(píng)論   

          主站蜘蛛池模板: 建湖县| 东阿县| 绵竹市| 佳木斯市| 利辛县| 吐鲁番市| 深圳市| 镇安县| 东至县| 铁岭市| 乳山市| 曲靖市| 蒙山县| 嘉鱼县| 伊川县| 含山县| 邵武市| 安吉县| 陵川县| 岐山县| 平阴县| 绥棱县| 科尔| 西平县| 静乐县| 玉林市| 海淀区| 新密市| 广汉市| 阳高县| 虞城县| 达日县| 临西县| 咸宁市| 平果县| 宁远县| 化州市| 同仁县| 夏河县| 余庆县| 威信县|