如何使用javascript / jquery更改字符串?

时间:2012-11-23 09:43:30

标签: javascript jquery string

我有一个字符串Feb 2012。如何将其转换为FEBRUARY 2012。实际上我有一个完整的数组['Jan 2011', 'Feb 2011', 'Mar 2011', ... ]我需要转换每个元素并得到['JANUARY 2011', ...]

5 个答案:

答案 0 :(得分:7)

假设字符串始终格式化为“{monthShortForm} {year}”,您可以执行以下操作:

var input = 'Jan 2011';
var parts = input.split(' ');
var output = longForm[parts[0].toLowerCase()] + ' ' + parts[1];

其中longForm是这样的地图

longForm = { 'jan': 'JANUARY', 'feb': 'FEBRUARY', /* etc */ };

希望有所帮助。

答案 1 :(得分:1)

var dt = new Date("Feb 2012"), // FEBRUARY 2012
    m_names = ["JANUARY", "FEBRUARY", "March", 
"April", "May", "June", "July", "August", "September", 
"October", "November", "December"];

var curr_month = dt.getMonth(),
    curr_year = dt.getFullYear();

console.log(m_names[curr_month] + " " + curr_year);

答案 2 :(得分:0)

var myDate = new Date(Date.parse("Mar 2012"));
var monthNum = myDate.getMonth();
var year = myDate.getFullYear();

现在将monthNum转换为字符串。我建议使用12个字符串的数组,并使用数组[monthNum]来获取正确的字符串。

答案 3 :(得分:0)

如果您要在应用中进行其他基于时间和日期的操作,我建议您使用Moment.js(http://momentjs.com/)。这是一个非常强大的图书馆 - 如果你需要这么做的话可能有点太多了 - 但无论如何都值得研究。

要使用Moment.js回答您的问题,这是您需要的代码段:

moment('Feb 2011', 'MMM YYYY').format('MMMM YYYY').toUpperCase();
// FEBRUARY 2011

答案 4 :(得分:0)

使用jQuery尝试:

var arr = ["Jan 2011", "Feb 2011", "Mar 2011"];
var name = ["JANUARY", "FEBRUARY", "MARCH"];
var list = new Array();

// Loop through the array arr
$.each(arr, function(i, value) {

    // Convert the month names
    var month = name[i];
    var year = value.split(" ")[1];

    // Display the result
    alert(month + ' ' + year);  

    // Add elements to a new array
    list.push(month + ' ' + year);
});​

console.log(list);

控制台结果:

["JANUARY 2011", "FEBRUARY 2011", "MARCH 2011"]

希望这有帮助!