我需要将这个字符串拆分为下午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)。 –