[英]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.