簡體   English   中英

如何在 jQuery-Validation-Engine 中驗證文件名?

[英]How to validate filename in jQuery-Validation-Engine?

如何在 jQuery-Validation-Engine 中驗證文件名,除了下划線( _ )之外不允許使用特殊字符?

我嘗試了這些正則表達式: /^[a-zA-Z\d._]*$//^[a-zA-Z0-9_]+$/但沒有運氣。 正則表達式基於https://regexr.com/有效

這是我的示例:

"validFileName": {
  "regex": /^[a-zA-Z\d._]*$/,
  "alertText": "* Invalid filename"
},
            

輸入標簽:

<input type="file" name="attachment" id="attachment" class="validate[required, custom[validFileName]]"/>

嘗試使用這個正則表達式([a-zA-Z\d._])\w+

並將輸入元件中的 class 更改如下 -

class="validate[required,custom[email]] text-input"

還可以查看此以供參考以創建自定義規則-如何創建簡單的自定義規則?

我終於明白了。 我會把它貼在這里以防有人需要它。 我使用了調用 function:

html:

<input class="validate[required, funcCall[validFilename]]" type="file" name="attachment" id="attachment" />

腳本:

function validFilename(field, rules, i, options) {
    var uploadedFile = $(field);
    
    if (uploadedFile) {
    var extensions = rules[i + 1];               
    var mimeFilter = new RegExp(extensions);
    var file = document.getElementById('attachment').files[0].name;
    var pattern = new RegExp(/^[a-zA-Z0-9_.]+$/);
    
         if (!pattern.test( file ) ) {
              return '"' + file +  '" filename is invalid. No special character allowed.';
         }
        
    }

}

這是我的工作代碼: https://jsfiddle.net/26jkLhr9/

我知道這不是最好的答案,但它有效。 如果您有更好更干凈的想法,歡迎在此處添加。

暫無
暫無

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

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