var REGEX = new RegExp("(?=[hms])g") var TIME = _GET('t', '0').split(REGEX) var hours = TIME[TIME.indexOf('h')-1] var minutes = TIME[TIME.indexOf('m')-1] var seconds = TIME[TIME.indexOf('s')-1] var HOURS = hours?('hours: '+hours):'' var MINUTES = minutes?('minutes: '+minutes):'' var SECONDS = seconds?('seconds: '+seconds):'' document.write('TIME RECIEVED:<br><br>'+HOURS+'<br>'+MINUTES+'<br>'+SECONDS)
这是整个代码。我基本上想看看我是否可以模仿youtube的视频技巧(把&amp; t = XhYmZs放到视频中去)
唯一缺少的是我不知道正则表达式&gt; _&lt;
我需要的是将字符串"5h55m55s"
拆分为['5','h','55','m','55','s']
而不是['5', 'h55', 'm55', 's']
,这会破坏我的代码。哦是的,_GET函数不重要,它只是从url获取一个字符串,就像php的$ _GET变量
显然,正则表达式/(?=[hms])/
不起作用,我需要知道如何让它在h
的“左”和“右”分开,{{1} }和m
基本上,这个问题的答案是一个正则表达式,例如,将s
拆分为数组"55m55s"
答案 0 :(得分:3)
你可以这样......
var parts = "5h55m55s"
.split(/(\d+)/).filter(function(a) { return a; });
// ["5", "h", "55", "m", "55", "s"]
这将减少0
的时间。如果可以,请将filter()
正文更改为return a.length
。
答案 1 :(得分:1)
var pieces = "55m55s".match(/\d+|[hms]/g);
// ["55", "m", "55", "s"]
var pieces = "5h55m55s".match(/\d+|[hms]/g);
// ["5", "h", "55", "m", "55", "s"]
答案 2 :(得分:0)
time = "5h55m55s";
pattern = /(\d*h)(\d*m)(\d*s)/i
timeArry=time.match(pattern);
console.log(timeArry.splice(1,3)); //Output ["5h", "55m", "55s"]
答案 3 :(得分:0)
使用正则表达式执行此操作:
var regex = /(\d+)h(\d+)m(\d+)s/g
var time = _GET('t', '0').match(regex)
var hours = time[0]
var minutes = time[1]
var seconds = time[2]
var HOURS = hours ? ('hours: ' + hours) : ''
var MINUTES = minutes ? ('minutes: ' + minutes) : ''
var SECONDS = seconds ? ('seconds: ' + seconds) : ''
document.write('time RECIEVED:<br><br>' + HOURS + '<br>' + MINUTES + '<br>' + SECONDS)
(\d+)h
找到字面h
字符之前的数字。
(\d+)m
找到字面m
字符之前的数字。
(\d+)s
找到字面s
字符之前的数字。
答案 4 :(得分:0)
我不得不在不久前实现这样的东西,答案实际上非常简单。尽管如此,它让我想起了这个问题。
所以,回答我自己的问题,这就是我所做的事情:
function parseTime(t){
var h = RegExp('([0-9]*)h').exec(t),
m = RegExp('([0-9]*)m').exec(t),
s = RegExp('([0-9]*)s').exec(t),
a = [];
if(h){
a.push('Hours: '+h[1]);
}
if(m){
a.push('Minutes: '+m[1]);
}
if(s){
a.push('Seconds: '+s[1]);
}
return a;
}
parseTime('1h23m45s'); // ['Hours: 1', 'Minutes: 23', 'Seconds: 45']
parseTime('1h45s'); // ['Hours: 1', 'Seconds: 45']
parseTime('2m') // ['Minutes: 2']
它简单而有活力。另外,阅读它就像:
var _time = parseTime('12m14s');
console.log(_time.join('\n'));
打印
Minutes: 12
Seconds: 14