【问题标题】:Removing the day from a date string with jQuery使用 jQuery 从日期字符串中删除日期
【发布时间】:2012-08-22 17:35:11
【问题描述】:

我正在尝试从页面上每个可能出现的日期中删除“天”。

这是为了让jQuery把“08/22/2012”格式的每个日期变成“08/2012”

我可以用这个代码做到这一点:Replacing wildcard text using jquery

更多信息请看我的小提琴:http://jsfiddle.net/CfZjF/223/

但无论我尝试了什么,它都无法在这个表格布局中工作。

另一个问题是具体指定日期(可能使用通配符?)——即正斜杠之间的 2 个数字:/xx/,但请参阅小提琴以获取更多信息。

有什么想法可以解决这个问题吗?

【问题讨论】:

  • 所有当前格式为 xx/xx/xxxx 的日期吗?
  • 你想修改所有日期还是只修改带有类的行中的日期?
  • 菲利普:是的。 j08691:所有日期。我将使用它来查看网络表单结果。
  • 哇,这是一个很高的修订号!在测试新事物时,您应该创建一个新的小提琴(或 fork 它)。你可以run他们而不更新:-)

标签: javascript jquery drupal


【解决方案1】:

试试

str.replace(/\/\d+\//g, "/");

或者更具体一点,将/(\d{2})\/\d{2}\/(\d{4})/g 替换为"$1/$2" 之类的……

(Updated fiddle)

【讨论】:

【解决方案2】:

我认为您应该单独遍历表格单元格,而不是尝试对整个 HTML 行进行全局处理。

这假设您的数据格式与您的 jsFiddle 中的一样。

更新小提琴:http://jsfiddle.net/GKrCS/

$('tr').each(function(){
       $('td',this).not(':first').text(
           function(){
               return $(this).text().replace(/\/[0-9]+\//,'/');
           });
});

【讨论】:

    【解决方案3】:

    由于您的所有日期都采用 xx/xx/xxxx 的形式,因此使用简单的 split() 将始终将其拆分为具有以下值的数组:

    xx,xx,xxxx
    

    所以,是这样的:

    var totalDate = $("whateverYourDateSelectorMightBe");
    var daysInMiddle = totalDate.val().ToString().split(",")[1];
    

    那么你可以这样做:

    totalDate.val(totalDate.val().ToString().replace(daysInMiddle + "/",""));
    

    请注意,有很多更简洁的方法可以做到这一点。我之所以这样做,是因为我认为它更好地解释了我想要做什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-31
      • 2017-05-05
      • 1970-01-01
      • 1970-01-01
      • 2018-12-25
      • 1970-01-01
      • 2010-10-25
      • 1970-01-01
      相关资源
      最近更新 更多