我需要將這個字符串拆分爲下午3點,所以最終結束爲[3:00] [pm]。以下是我的嘗試,但它不正確,因爲控制檯打印p m
。如何將字符串拆分爲索引中的數組?
date = '3:00pm'
var elem = date.slice(date.length-2);
我需要將這個字符串拆分爲下午3點,所以最終結束爲[3:00] [pm]。以下是我的嘗試,但它不正確,因爲控制檯打印p m
。如何將字符串拆分爲索引中的數組?
date = '3:00pm'
var elem = date.slice(date.length-2);
你可以用兩個不同的切片得到兩個不同的部分。
var date = '3:00pm';
var arr = [
date.slice(0, -2), // first to 2nd from last
date.slice(-2) // just the last 2
];
console.log(arr);
您可以使用String.prototype.match()
與RegExp
/\d+:\d+|\w+/g
var date = "3:00pm"
var elem = date.match(/\d+:\d+|\w+/g);
console.log(elem[0], elem[1])
你可以使用正向預測的正則表達式。
console.log("3:00pm".split(/(?=[ap]m)/));
console.log("11:55am".split(/(?=[ap]m)/));
也許還需要檢查'am' –
@mortezaT,請參閱編輯。 –
這看起來不錯。但我可以知道爲什麼正則表達式而不是簡單的子字符串? –
我相信你要分割不僅3:00pm
而且其他時間。這裏是一個使用正則表達式的示例。
var re=/([0-9:]+)\s*(am|pm)/i;
var ar=[];
'3:00pm'.replace(re,function(m/*whole match ([0-9:]+)\s*(am|pm)*/, pt1/*([0-9:]+)*/, pt2/*(am|pm)*/){
ar.push(pt1, pt2); //push captures
return m; //do not change the string
});
console.log(ar); //["3:00","pm"]
['.slice()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/slice)返回一個字符串,而不是陣列。你可能想在這裏使用['.split()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split)。 –