首页 > 解决方案 > 如何匹配 JavaScript 中的文件名模式?

问题描述

我如何匹配一个文件名,该文件名完全符合以下格式/模式(包括大写字母): yymmdd_Name1_Data_Pricesyymmdd_Name1_Data_Contactyymmdd_Name1_Data_Address

我有需要上传的文件,文件名保存在数据库中。我想将给定的文件名与数据库中的模式匹配,但我不确定如何做到这一点。

标签: javascriptregexpattern-matching

解决方案


您可以使用以下正则表达式。

\b\d{6}(?:_[A-Z][a-z]+){3}\b

演示

Javascript 的正则表达式引擎执行以下操作。

\b              # match word break
\d{6}           # match 6 digits
(?:             # begin non-capture group
  _[A-Z][a-z]+  # match '_', one upper-case letter, 1+ lower-case letters  
)               # end non-capture group
{3}             # execute non-capture group 3 times
\b              # match word break

匹配对应于日期的前 6 个字符可能比仅匹配 6 个数字更精确。例如,假设年份是2000-2020,可以替换\d{6}

(?:[01]\d|20)(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|30|31)

但它仍然不能确保日期有效。


推荐阅读