【问题标题】:Use JavaScript to replace a date inside of a string使用 JavaScript 替换字符串中的日期
【发布时间】:2015-05-13 03:58:03
【问题描述】:

我正在为 javaScript 替换和日期而苦苦挣扎。

简而言之,我有一个包含日期的字符串。我需要用新格式化的日期替换该日期,同时保留字符串。

var d1 = 'We met on 2014-02-20';
var d2 = 'I saw you again on Thursday, June 05, 2012';
var d3 = 'We had a great day on 2/15/2013';
var d4 = 'On March 07, 2015 we had to go to school';
var d5 = 'The vacation is between 1/1/15 and 1/2/15';

我需要的是在所有这些行中获得一个标准日期,但每个解决方案都只是提取日期并打印它。我发现的最好的文章涉及 JQUERY UI [var dt1 = $.datepicker.formatDate('D, d M yy', new Date(d1));],效果很好,但它会从字符串中删除日期,我只剩下日期。

我想要实现的是这样的:

var d1 = 'We met on 2014-02-20';
var d2 = 'I saw you again on Thursday, June 05, 2012';
var d3 = 'We had a great day on 2/15/2013';
var d4 = 'On March 07, 2015 we had to go to school';

print_date_str(d1);

我们在 2014 年 2 月 20 日星期一

见过面
print_date_str(d2);

我在 2012 年 6 月 5 日星期四再次见到你

print_date_str(d3);

我们在 2013 年 2 月 15 日星期日

度过了愉快的一天
print_date_str(d4);

2015 年 3 月 7 日星期五我们不得不去上学

print_date_str(d5);

'假期在 2015 年 1 月 1 日星期二2015 年 1 月 2 日星期三之间'

这是一个显示 Jquery UI 日期格式的 JSFIDDLE:http://jsfiddle.net/k7qrw8o7/1/

非常感谢您的指导和帮助。

【问题讨论】:

  • 你能举个完整的例子吗?你如何使用日期选择器?您希望使用“假期在 1/1/15 和 1/2/15 之间”这样的字符串会发生什么?
  • 是否假定变量将包含文本而不仅仅是日期?如果是这样,那就更难了,因为您必须通过文本查看日期格式,并且考虑到您拥有如此广泛的日期格式,这可能会让人头疼。如果我们可以假设字符串只有一个日期,这将由 Javascript 的 Date() 对象处理。
  • @Amit - 我在您的评论中添加了一个示例 (d5)。
  • 只需将日期作为单独的变量,转换它们,然后将它们连接到字符串中。否则,您将需要一些不太可能适用于所有情况的复杂正则表达式来查找和替换日期。
  • @ThoughtSpaceDesigns - Jquery UI datepicker 接缝处理在字符串中查找 RFC 日期,但它只是删除了文本的其余部分。所以在某种程度的正则表达式中一定是可能的,挖掘 JQUERY UI 代码接缝是徒劳的(我试过了)。

标签: javascript date


【解决方案1】:

这是一个用于格式化 JavaScript 日期的好网站。 MS JS time var date = new Date(Date.UTC(2014, 1, 20)); 然后你会做var d1Date = date.toLocaleDateString("en-US") 然后var d1 = 'We met on '+ d1Date;

【讨论】:

  • 那只是连接一个字符串,我需要替换字符串里面的日期。
  • 您可以通过将字符串与变量连接起来,然后随意操作变量来替换字符串中的日期。如果您想更改 d1 中的日期,只需更改为 var d1Date
  • 那么如何将日期提取为变量,然后留下一个占位符,以便日期回到正确的位置? '这个日期2015/04/05在中间',所以你需要把它改成'这个日期'+ var_date +'在中间'
  • 是的,这是正确的,那么您将操纵 var_date 来更改该句子中的日期
  • 但是每个句子都不一样。那么你怎么知道在哪里连接。真的需要 var.replace(date, val);也许我没有正确理解你,你能根据我发布的变量用一个例子来更新你的答案吗?
猜你喜欢
  • 1970-01-01
  • 2021-04-11
  • 1970-01-01
  • 2019-03-04
  • 1970-01-01
  • 1970-01-01
  • 2020-10-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多