如何使用replace替换字符串中的所有匹配字符?

时间:2017-04-18 01:24:02

标签: google-apps-script

我使用了一种方法来格式化Google Apps脚本中的日期,以便它只显示MMM dd, yyyy。我试图用“”替换我的日期字符串中的所有“ - ”,但使用替换方法只替换字符串的第一个“ - ”而不替换其余的。有什么想法吗?如何让它替换我的字符串中的所有“ - ”?

这是我的代码:

function formatDate() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var dataSheet = ss.getSheets()[0];
  var templateSheet = ss.getSheets()[1];
  var dataRange = dataSheet.getRange(2, 1, dataSheet.getMaxRows() - 1, 9);

  var data = dataRange.getValues();
  var startRow = 2;  // First row of data to process
  var objects = getRowsData(dataSheet, dataRange); 

  //Format date in column D
  for(var k=0; k<objects.length; k++){
    var column = data[k];
    var DateCell = column[4];
    var emailSent = column[8];


    var column = data[k];
    var DateCell = column[4];
    var date = new Date(DateCell).toLocaleDateString('en-US',{
      day : 'numeric',
      month : 'short',
      year : 'numeric'
      }).split("").join("-").replace(/-/g, "");

    var Date1 = dataSheet.getRange(startRow + k, 5);
    var Date2 = dataSheet.getRange(startRow + k, 6);
    Date1.setValue(date);
    Date2.setValue(date);
   }
}

1 个答案:

答案 0 :(得分:1)

这两个片段都有效。

var str = "testing-this-out";

var beforeEl = document.getElementById("before");

var afterEl = document.getElementById("after");

beforeEl.innerText = "Before: " + str;

afterEl.innerText = "After: " + str.replace(/([-])+/g, "");
<p id="before"></p>
<p id="after"></p>

var date = new Date("2017-01-11").toLocaleDateString('en-US',{
  day : 'numeric',
  month : 'short',
  year : 'numeric'
}).split("").join("-").replace(/([-])/g, "");

document.getElementById("date").innerText = date;
<span id="date"></span>