在Javascript中将包含(/和:)的字符串分割成数组

Splitting string which includes( / and : ) into an array in Javascript

本文关键字:字符串 分割 数组 Javascript 包含      更新时间:2023-09-26

我有一个包含日期和时间的字符串。在某些情况下,我需要把它们都分开。我的字符串像这样:28/08/2015 11:37:47

有一些解决方案,但他们没有解决我的问题

var date = "12/15/2009";
var parts = date.split("/");
alert(parts[0]); // 12
alert(parts[1]); // 15
alert(parts[2]); // 2009

这是类似的事情,但正如我上面所说的,我需要拆分它们。

谢谢你的帮助

如果您总是使用日期时间格式,我建议使用简单的regex

"28/08/2015 11:37:47".split(/'/|'s|:/)

用空格和冒号

分隔

并返回

 ["28", "08", "2015", "11", "37", "47"]

根据评论中提出的问题进行编辑

function parse() {
  /** INPUT FORMAT NEEDS TO BE DAY/MONTH/YEAR in numbers for this to work **/
  var datetime= document.getElementById("datetime").value;
  var time = document.getElementById("time").value;
  var output = document.getElementById("output")
  var datetimearr = datetime.split(/'/|'s|:/);
  var timearr = time.split(/:/);
  var date = new Date(datetimearr[2],datetimearr[1]-1,datetimearr[0],datetimearr[3],datetimearr[4],datetimearr[5]);
  date.setHours(date.getHours()+(parseInt(timearr[0])));//parseInt needed otherwise it will default to string concatenation
  date.setMinutes(date.getMinutes()+(parseInt(timearr[1])));
  date.setSeconds(date.getSeconds()+(parseInt(timearr[2])));
  output.value = date.toString();
}
Date time: <input type="text" value="28/08/2015 11:37:47" id="datetime"><BR/>
Time to add: <input type="text" value="11:37:47" id="time"><input type="button" value="calculate!" onclick="parse()"><BR/>
<textarea  id="output" placeholder="Output comes here" style="width:400px;height:100px;"></textarea>

可以使用正则表达式

var str = '28/08/2015 11:37:47';
console.log(str.split(/['/:'s]/));

您可以简单地将字符串转换为日期:

var datestr = "12/15/2009 11:33:44";
var date = new Date(datestr);

现在通过这些函数访问这些值:

date.getDate(); //  -> 15
date.getMonth(); //  -> 12
date.getFullYear(); //  -> 2009
date.getHours(); //  -> 11
date.getMinutes(); //  -> 33
date.getSeconds(); //  -> 44

working js fiddle示例

编辑:不得不修复的例子,因为document.write没有正确地工作在小提琴。