如何在JavaScript中使用正则表达式验证文件扩展名

用户

我有一个带有提交按钮的文本框。单击提交按钮后,我想检查文件名是否存在,并且还想验证文件名(仅允许.php扩展名)文件扩展名。

<input type="text" name="textfield1" id="text1" />

<input type="button" value="submit" name="submit" id="submit" onclick="login()"; />

<input type="reset" value="clear" id="reset" name="reset" />
</form>
埃里亚斯·范·奥特格姆

在这里看起来像XY问题。您应该考虑以下几点:

  • 客户端无法可靠地检查文件是否存在(大概在服务器上)
  • 至少可以说,任何客户端验证都是不够的。不可靠
  • 为什么要使用正则表达式?这里有更好的工具可以完成这项工作。更好,例如:更可靠,更容易,而且可能更快
  • 仅检查扩展名不会削减它。文件名的其余部分也可能无效。

既然如此,为什么不检查文件名中的最后四个字符。考虑到您只允许.php扩展,一个简单的方法:

var inputVal = inputElem.value.trim();
if (inputVal.substr(-4).toLowerCase() === '.php')

应该做得很好。您也可以在服务器端执行相同的操作:

if (strtolower(trim(substr($_POST['inputName'], -4))) === '.php')

当然,您仍然必须检查用户提交的值,以获取其他禁止的/特殊的字符,例如引号,空格,换行符,(反斜杠),哈希等……总而言之,我想您最好重新考虑您的方法。也许告诉我们您实际上想做什么,所以我们可以建议您当前解决方案的替代方案。

完成该工作后,可以使用PHP函数轻松地检查文件是否确实存在file_exists它返回true文件是否存在,否则返回false。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用正则表达式获取不带扩展名的文件名

如何通过扩展名使用正则表达式过滤文件,但排除某些文件?

如何使用正则表达式获取文件扩展名?

如何使用正则表达式拆分文件扩展名

如何使用正则表达式匹配不带扩展名的文件名单词?

Java文件扩展名正则表达式

正则表达式:省略文件扩展名

使用正则表达式编辑扩展名

Javascript正则表达式匹配扩展名的文件名

使用正则表达式提取文件名而无需扩展名的url

使用正则表达式查找以 / 不带某些类型的扩展名结尾的文件

使用正则表达式从String中提取文件扩展名

使用正则表达式查找带有参数给出的扩展名的文件

使用正则表达式获取文件扩展名

我需要使用正则表达式检查文件的扩展名

如何在Javascript正则表达式中使用{{}}

用于 ASP.Net FileUpload 中文件扩展名验证的正则表达式验证器

Python正则表达式匹配整个文件名包括文件扩展名

使用正则表达式验证电子邮件,其中域部分中扩展名的数量可以变化

正则表达式如何仅匹配文件名前缀和扩展名而忽略 Ruby 中间的数字?

正则表达式扩展名和语言

正则表达式从路径获取带扩展名或不带扩展名的文件名

正则表达式,不带扩展名的文件名

正则表达式 - 如果通过则测试扩展名然后测试文件名

用于url css文件名和扩展名的Java正则表达式

正则表达式:从 Y 文件夹中查找 X 扩展名的文件

如何在Laravel中使用正则表达式验证来验证年份?

如何使用Matlab /八度regexprep(正则表达式替换)在扩展名前的文件名中添加后缀

如何在反斜杠之后和某个文件扩展名之前匹配所有内容的Perl正则表达式?