Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么';日期和月份的RegExp是多少?_Javascript_Regex_File_Date - Fatal编程技术网

Javascript 什么';日期和月份的RegExp是多少?

Javascript 什么';日期和月份的RegExp是多少?,javascript,regex,file,date,Javascript,Regex,File,Date,文件名输入示例: 收益文件7月31日20.csv 收益文件30 Aug 20.csv 我的RegExp代码: Yield\sfile\s[0-9]{2}\s\b(?:一月?:二月?;二月?;三月?;四月?:一日?五月?;六月?;七月?;八月?:乌斯特?;九月?;十月?;十月?;十一月?;十二月?:余烬?\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\[Cc]\\\\\\\\\\\\

文件名输入示例:

收益文件7月31日20.csv

收益文件30 Aug 20.csv

我的
RegExp
代码:

Yield\sfile\s[0-9]{2}\s\b(?:一月?:二月?;二月?;三月?;四月?:一日?五月?;六月?;七月?;八月?:乌斯特?;九月?;十月?;十月?;十一月?;十二月?:余烬?\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\[Cc]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\$
如果您的文件格式如此严格

  • 文本字符串
    产生文件
    (带尾随空格)
  • 要提取的日期
  • 文本字符串
    .csv
那你就不需要正则表达式了。你甚至不需要关心绳子

当然你可以验证它,例如

if( !filename.startsWith("Yield file ") || !filename.endsWith(".csv")) {
    throw new Error("Filename doesn't match the expected pattern");
}
但你真正需要的是:

date = filename.substring(
    "Yield file ".length,
    filename.length - ".csv".length
);

结尾的字符类应该是带有破折号的
[0-9]{2}
,您可以省略它后面的
*
,也可以从模式和单词边界中省略
{1}
<代码>^Yield\sfile\s[0-9]{2}s(?:一月(?:八月)?二月(?:二月)?三月(?:ch)?四月(?:日)?五月?六月(?:日)?八月(?:ust)??九月(?:余烬)?十月(?:ober)?十一月(?:余烬?十二月(?:余烬)?\s[0-9]{2}(?:[Cc][Ss][Vv])$请参阅我们是否不需要\b月前您正在匹配之前的空白字符。您应该花多一点时间清楚地询问您的问题。身体应该独立站立,它不应该要求标题被理解。您还应该提供测试通过和失败的输入和预期输出的示例,以及代码的错误(最好在问题中作为可运行的代码段发布)。OP似乎还希望匹配月份名称,因此
/^Yield file\d\d(一月|一月|二月|…)\d\d.csv$/
。这篇文章的措词很糟糕。嗨,很抱歉这样的措词!星期五赶时间!我只是想知道月份名称的正则表达式。所以格式大概是6月31日到20日。我知道对于数字,我们可以声明[0-9]{2},但是对于文本月份名称,我不确定!我的观点是——如果你知道这个月将是“什么都在那里”,你不需要匹配具体的文本。