如何删除日期标准(st,nd,rd,th)

时间:2016-01-31 06:10:02

标签: javascript regex

我无法找到一种方法来删除日期序数,同时在字符串中保留月份。

例如,我需要:

  

2015年6月12日

输出到:

  

2015年6月12日

我发现this post提到了如何操作,但这种形式的RegEx不适用于JavaScript。

3 个答案:

答案 0 :(得分:2)

您需要创建两个捕获组,以选择月份(\d+)及其序号(st|nd|rd|th)。然后用$1 (包含月份数的第一个组)替换字符串。像这样:

var str = "June 12th, 2015";
str.replace(/(\d+)(st|nd|rd|th)/, "$1");
//=> June 12, 2015

Live Demo

答案 1 :(得分:1)

如果您想使用RegEx:

ord_day_pattern = re.compile(r"(?<=\d)(st|nd|rd|th)")
print re.compile(ord_day_pattern).sub("", mystring)

一衬垫:

print re.compile(r"(?<=\d)(st|nd|rd|th)").sub("", mystring)

答案 2 :(得分:0)

如果您不想担心各种序数,可以使用正则表达式匹配,之前的任意2个字符。要使用的正则表达式是:

var regex= /[a-z]{2},/;

匹配2个字符后跟,的字符串。

例如:

> var regex= /[a-z]{2},/;
> var dateStr = 'June 12th, 2015';
> dateStr.replace(regex, ',');
< 'June 12, 2015'