如何匹配 JavaScript 中的文件名模式?
How to match a filename pattern in JavaScript?
我怎样才能匹配一个文件名,这个文件名正好(包括大写)如下format/pattern:
yymmdd_Name1_Data_Prices,
yymmdd_Name1_Data_Contact,
yymmdd_Name1_Data_Address.
我有文件需要上传,文件名保存在数据库中。我想将给定的文件名与数据库中的模式相匹配,但我不确定该怎么做。
您可以使用以下正则表达式。
\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)
但它仍然不能确保日期有效。
我怎样才能匹配一个文件名,这个文件名正好(包括大写)如下format/pattern: yymmdd_Name1_Data_Prices, yymmdd_Name1_Data_Contact, yymmdd_Name1_Data_Address.
我有文件需要上传,文件名保存在数据库中。我想将给定的文件名与数据库中的模式相匹配,但我不确定该怎么做。
您可以使用以下正则表达式。
\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)
但它仍然不能确保日期有效。