javascript - 我需要在 javascript 中验证文件名和扩展名

标签 javascript regex

文件名应包含 3 个或更多字符,后跟 .和类型的文件扩展名:pdf、doc、html。 这是我正在使用的正则表达式,但它不起作用。

        /^[A-Za-z]{3}\.?[pdf]|[doc]|[html]$/

这有什么问题吗?

最佳答案

您误用了字符类([...] 匹配 1 个符号)来进行分组构造((...) 用于对序列的替代项进行分组符号)。另外,您可以使用 ?. 声明为可选,但它不应该(根据您的规范)。此外,3 个或更多意味着您需要 {3,} 限制量词,而不是 {3} (与量化子模式的 3 次出现完全匹配)。

使用

/^[A-Za-z]{3,}\.(?:pdf|doc|html)$/

请参阅regex demo .

或者,使整个模式不区分大小写:

/^[a-z]{3,}\.(?:pdf|doc|html)$/i
                               ^

图案详细信息:

  • ^ - 字符串开头
  • [A-Za-z]{3,} - 3 个或更多 ASCII 字母
  • \. - 文字点
  • (?:pdf|doc|html) - 匹配 pdfdochtml 的非捕获组 字符序列
  • $ - 字符串结尾

关于javascript - 我需要在 javascript 中验证文件名和扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37378649/

相关文章:

javascript - 来自 ReDos 攻击的安全正则表达式模式

javascript - 父级访问功能

regex - 根据外部或内部单引号以不同方式替换空格

python - 在 Python 中将表单主体转换为字典

python - Scrapy:ValueError:需要超过 0 个值才能解压

javascript - JS - 如何使用参数向 div 添加 onclick 事件?

javascript - Node.JS:如何等待进程完成后再继续?

javascript - 从字符串(分层数据)创建多维数组

php - 匹配数字和空格的正则表达式

regex - 使用正后视的正则表达式在 Alteryx 中不起作用