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

时间:2016-05-22 19:23:39

标签: javascript regex

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

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

它出了什么问题?

1 个答案:

答案 0 :(得分:3)

您滥用了与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字符序列匹配的非捕获组
  • $ - 字符串结尾