和風細雨

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

          在JavaScript中使用正則表達式驗證表單字段

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

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

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

          一個完整的驗證過程

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

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

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


          常用驗證函數

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

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

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

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

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

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

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

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

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

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

          posted on 2008-03-02 16:00 和風細雨 閱讀(2011) 評論(2)  編輯  收藏 所屬分類: JavaScript

          評論

          # re: 在JavaScript中使用正則表達式驗證表單字段 2012-04-07 23:14 lin

          樓主太讓我感動了,謝謝  回復  更多評論   

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

          謝謝樓主!  回復  更多評論   

          主站蜘蛛池模板: 上犹县| 库尔勒市| 巨鹿县| 镶黄旗| 武威市| 杭锦后旗| 醴陵市| 湖北省| 平顶山市| 长乐市| 扬州市| 财经| 额敏县| 陆丰市| 宁武县| 雷山县| 五莲县| 时尚| 临澧县| 静乐县| 罗山县| 合阳县| 分宜县| 饶阳县| 龙门县| 西吉县| 东光县| 南昌县| 文昌市| 牟定县| 巍山| 读书| 承德市| 清徐县| 四子王旗| 佛学| 银川市| 常宁市| 霞浦县| 福海县| 甘洛县|