簡體   English   中英

正則表達式不適用於IE,但適用於其他瀏覽器

[英]Regex not working for IE but works for other browsers

(function($){
    $.fn.validationEngineLanguage = function(){
    };
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": { // Add your regex rules here, you can take telephone as an example
                    "regex": "none",
                    "alertText": "This field is required",
                    "alertTextCheckboxMultiple": "Please select an option",
                    "alertTextCheckboxe": "This checkbox is required",
                    "alertTextDateRange": "Both date range fields are required"
                },

                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[\ \.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9\ \.\-\/]{3,20})((x|ext|extension)[\ ]?[0-9]{1,4})?$/,
                    "alertText": "Invalid phone number"
                },
                "email": {
                    // HTML5 compatible email regex ( http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#    e-mail-state-%28type=email%29 )
                    "regex": /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
                    "alertText": "Invalid email address"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "Not a valid integer"
                },
                "number": {
                    // Number, including positive, negative, and floating decimal. credit: orefalo
                    "regex": /^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "Invalid floating decimal number"
                },

                //tls warning:homegrown not fielded                 
                "images": {
                    "regex": /^[\w,\s-]+\.[jpg|png|gif]{3}$/,
                    "alertText": "Upload .jpg or .png or .gif format"
                },
                //tls warning:homegrown not fielded                 
                "pdf": {
                    "regex": /^[\w,\s-]+\.[pdf]{3}$/,
                    "alertText": "Upload .pdf format only"
                }                               
            };

        }
    };

    $.validationEngineLanguage.newLang();

})(jQuery);

這是我的驗證腳本,但是IE中的圖像失敗,其他瀏覽器沒有問題

            "images": {
                "regex": /^[\w,\s-]+\.[jpg|png|gif]{3}$/,
                "alertText": "Upload .jpg or .png or .gif format"
            },

編寫[pdf]{3}您要匹配['p', 'd', 'f']任何字符,重復三遍。 因此,以下擴展名將有效:

dfp
dpf
fdp
fpd
pdf
pfd

這不是您想要的。

[pdf]{3}替換為pdf

同樣, [jpg|png|gif]{3}應該替換為(jpg|png|gif)

IE會獲取文件的完整路徑,這就是它失敗的原因,因此只需按以下方式編輯正則表達式

/^[\\w,\\s-/\\:]+.(jpg|png|gif)$/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM