和風細雨

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

          在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

          謝謝樓主!  回復  更多評論   

          主站蜘蛛池模板: 武威市| 台江县| 临高县| 沂南县| 轮台县| 蒲江县| 句容市| 苍山县| 沅江市| 浦城县| 丽水市| 廊坊市| 万源市| 长汀县| 启东市| 高邮市| 香格里拉县| 涞源县| 陆河县| 台州市| 郁南县| 涿鹿县| 昌邑市| 平谷区| 株洲市| 镇远县| 萨迦县| 罗江县| 夹江县| 南部县| 托克逊县| 大丰市| 启东市| 哈尔滨市| 涪陵区| 乐昌市| 天水市| 板桥市| 清涧县| 德庆县| 龙井市|