如何在 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"
另请参阅此以供参考以创建自定义规则- How to create simple custom rule?
我终于明白了。我会 post 放在这里以防万一有人需要它。我使用了调用函数:
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/
我知道这不是最佳答案,但它奏效了!如果您有更好更清晰的想法,欢迎您在这里添加。
如何在 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"
另请参阅此以供参考以创建自定义规则- How to create simple custom rule?
我终于明白了。我会 post 放在这里以防万一有人需要它。我使用了调用函数:
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/
我知道这不是最佳答案,但它奏效了!如果您有更好更清晰的想法,欢迎您在这里添加。