gpt4 book ai didi

javascript - 月份日期的 JS 正则表达式

转载 作者:行者123 更新时间:2023-11-29 14:56:47 24 4
gpt4 key购买 nike

我正在使用简单的 indx,它使用 JS 正则表达式。他们说 %date% 变量与正则表达式相同

    (((J(anuary|uly|une))|February|(M(arch|ay))|(A(pril|ugust))|((Sept|Nov|Dec)ember)|October)|
(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec))[.,]{0,1}[\s]{0,1}[0-9]{1,2}[.,]{0,1}[\s]{0,1}(19|20|)\d\d|
(0[1-9]|[12][0-9]|3[01]|[1-9])(th|rd|st|nd){0,1}[\s]{0,1}(day\s){0,1}(of\s){0,1}(((J(anuary|uly|une))|February|
(M(arch|ay))|(A(pril|ugust))|((Sept|Nov|Dec)ember)|October)|(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec))[.,]{0,2}
[\s]{0,1}(19|20|)\d\d| (0[1-9]|1[012]|[1-9])[- /.](0[1-9]|[12][0-9]|3[01]|[1-9])[- /.](19|20|)\d\d|(0[1-9]|
[12][0-9]|3[01]|[1-9])[- /.](0[1-9]|1[012]|[1-9])[- /.](19|20|)\d\d|(19|20|)\d\d[- /.](0[1-9]|1[012]|[1-9])[-
/.](0[1-9]|[12][0-9]|3[01]|[1-9])

但这行不通。我需要让它以数字或数字和月份名称捕获日期这是我到目前为止所拥有的,但似乎无法弄清楚我是如何捕捉 2012 年 5 月 5 日的

对于数字日期

(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d|(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])

对于月份名称(但不完整。应该是 2012 年 5 月 5 日)

(?<Month>((Jan(uary)?)|(Feb(ruary)?)|(Mar(ch)?)|(Apr(il)?)|(May)|(June?)|(July?)|(Aug(ust)?)|(Sep(t(ember)?)?)|(Oct(ober)?)|(Nov(ember)?)|(Dec(ember)?)))\s*[ ,-]\s*(?<Date>(([12][0-9])

谁能给个建议

最佳答案

这是一个(我希望更容易理解的)适用于像您这样的情况的正则表达式:

var monthsWords = "(jan(uary)?|feb(ruary)?|mar(ch)?|apr(il)?|may|june?|july?|aug(ust)?|sep(tember)?|oct(ober)?|nov(ember)?|dec(ember)?)";
var monthsNos = "((0?[1-9])|1[0-2])";
var months = "(("+monthsWords+")|("+monthsNos+"))";
var days = "((0?[1-9])|([12][0-9])|(3[0-1]))";
var years = "\\d{4}";
var separator = "[. /-]";
var pattern = months + separator + days + separator + years;
var regexp = new RegExp(pattern, "i");
regexp.compile(regexp);
var result=regexp.test("May 4 2012");

当然,如果您需要更大的灵 active (例如,月份和日期的倒序​​),您需要修改模式。此外,我假设任何四位数字字符串都是有效年份,您可能还需要修改它。请注意使用“i”标志使模式不区分大小写。

关于javascript - 月份日期的 JS 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16627186/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com