2017-04-18 13 views
0

私は、Google Apps Scriptで日付をフォーマットしてMMM dd, yyyyと読むだけの方法を使用しています。私は私の日付文字列中のすべての " - "を ""と置き換えようとしていますが、replaceメソッドを使うと文字列の最初の " - "のみが置き換えられます。それはなぜですか?どのように私の文字列のすべての " - "を置き換えることができますか?これらのスニペットの両方が動作しreplaceを使用して文字列内のすべての一致文字を置き換えるにはどうすればよいですか?

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); 
    } 
} 

答えて

0

は、ここに私のコードです。

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>

+0

おかげ@Kyleリチャードソン私はあなたの提案を試してみましたが、今何らかの理由でそのは、すべての日付をフォーマットません。 – KarmaPimp

+0

それは奇妙です、私は実行可能なスニペットの中にそれを見せてください –

+0

私はあなたのための日付の文字列で動作します、私はその部分を見ませんでした。 –

関連する問題