gpt4 book ai didi

javascript - 检查文件名中的无效字符(特殊字符和国际字符)而不验证文件路径

转载 作者:行者123 更新时间:2023-12-03 02:51:12 29 4
gpt4 key购买 nike

我正在尝试验证文件名中包含无效字符的文件名,而不验证文件路径。我尝试过各种组合,但我的 JavaScript 函数似乎都不起作用。

 @Html.TextBoxFor(model => model.Attachment, new { type = "file" , onchange = "ValidateFileName(this)" })

JS:

function ValidateFileName(name) {
if (name.value.match(/\.\.[a-z][a-z][a-z]$/) || name.value.match(/\.\.[a-z][a-z][a-z][a-z]$/) || name.value.match(/^(?!\.)(?!com[0-9]$)(?!con$)(?!lpt[0-9]$)(?!nul$)(?!prn$)[^\|\*\?\\:%<>/$"]*[^\.\|\*\?\\:%<>/$"]+$/)) {

alert('Invalid file extension.');
name.form.reset();
name.focus();
return false;
}
}

最佳答案

这是我通常用来验证 Windows 文件名的正则表达式:

^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)[^\x00-\x1f\\?*:\";|/]+$

但是如果您的 name 变量包含文件路径,您首先必须使用以下方法从中提取文件名:

var filename = name.split(/(\\|\/)/g).pop();

或者:

var name_pieces = name.split('\\');
var filename = name_pieces[name_pieces.length - 1];

顺便说一句,请仔细检查这部分代码的行为:

onchange = "ValidateFileName(this)"

因为我觉得有什么问题正在发生......我不知道,但有些东西一直告诉我应该写成:

onchange = "ValidateFileName(this.value)"

关于javascript - 检查文件名中的无效字符(特殊字符和国际字符)而不验证文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47849969/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com