文件名应包含 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)
- 匹配pdf
、doc
或html 的非捕获组
字符序列$
- 字符串结尾
关于javascript - 我需要在 javascript 中验证文件名和扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37378649/