我想创建一个正则表达式来检测亚马逊中图书的发布日期。我正在提取所有项目的数据,我想查找出版物的日期。所有这些都有这种结构:
Month day, year.
月份仅由3个字符表示,当天可以有一个或两个数字(例如2011年12月5日或2011年12月22日)。这一年总有4个数字。
我如何在JavaScript中使用正则表达式来找到它?
提前致谢!!
答案 0 :(得分:2)
此:
var myregexp = /([a-z]{3}) (\d{1,2}), (\d{4})/i;
var match = myregexp.exec(subject);
if (match != null) {
result = match[1];
}
会让你前进。 match[1]
有几个月,match[2]
天和match[3]
年。
我将省略解释正则表达式。我把它作为锻炼留给你。您应该访问臭名昭着的正则表达式教程 here 。
答案 1 :(得分:1)
/(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec) \d{1,2}, \d{4}/i
答案 2 :(得分:1)
你没有说你假装用它做什么(提取一些东西,解析它的一部分,......)所以这里只是简单地“匹配”这些日期:
/\b\w{3} [1-3]?[0-9], \d{4}/
答案 3 :(得分:1)
var date = "Dec 22, 2011";
var match = date.match(/(\w+)\s(\d+),\s(\d+)/);
// match[1] == "Dec"
// match[2] == "22"
// match[3] == "2011"
请注意,如果格式发生变化,则可能会失败。
答案 4 :(得分:0)
试试这个:
^(Jan|Feb|Mar|Apr|May|Jun|Jul|Apr|Sep|Oct|Nov|Dec)\s{1}\d{1,2},\s{1}\d{4}$
OR
/^(Jan|Feb|Mar|Apr|May|Jun|Jul|Apr|Sep|Oct|Nov|Dec)\s{1}\d{1,2},\s{1}\d{4}$/gim
此处:
g - 全球
i - IgnoreCase
m - 多行
您可以尝试通过 gskinner
验证RegExp