2016-02-03 2 views
2

Я новичок в javaScript и, работая над простым проектом, столкнулся с этой проблемой. У меня есть строка,Извлечение времени из строки в javascript

var str = "11 hrs and 34 mins"; 

и я хочу только раз в формате времени, как 11:34

так, что я делаю сейчас есть что-то вроде этого

var str = "11 hrs and 34 mins"; 
var time=""; 
var parts=str.split(" "); 
for(var i=0;i<parts.length;i++){ 
    if(parseInt((parts[i].trim()), 10)){ 
     time+=parts[i]+" "; 
    } 
} 
console.log(time); 

ли лучший способ сделать это с помощью внешних библиотек или чистого javaScript. Может, помогите мне с этим.

+1

Вы можете использовать регулярные выражения –

+0

могли бы вы дать мне пример – e11438

ответ

3

Используйте регулярное выражение, чтобы соответствовать цифрам ^([0-1][1-9]|[2][1-3]).+([0-5][0-9]).+ с точным временем (0-23 часы и минуты 0-59):

var str = "11 hrs and 34 mins"; 
 
var time=""; 
 
var parts=str.match(/^([0-1][1-9]|[2][1-3]).+([0-5][0-9]).+/); 
 

 
document.getElementById("res").innerHTML = parts[1] + " : " + parts[2]; 
 

 
console.log(parts[1] + " : " + parts[2]);
<span id="res"></span>

0

Вы можете использовать следующее регулярное выражение для извлечения времени значения

/(\d+).+(\d+).+/ 

Пример:

'11 hrs and 34 mins'.replace(/(\d+).+(\d+).+/, '$1:$2') 

Результат: '11: 34'

Или вы можете использовать внешний libary, например Moment.js

1

Регулярно (при необходимости):

(\d+)([a-zA-Z\s])+(\d+) 

Номер группы 1 и 3 будет число Example

0

Попробуйте это:

"11 hrs and 34 mins".replace(/.*?(\d+)\s*hrs.*?(\d+)\s*min.*/,"$1:$2") 
0

Попробуйте это:

var str = "11 hrs and 34 mins"; 
var time= str.match(/\d+/g); 
time = time.join(':'); 
console.log(time); 
+0

делает это работал ? – Vegeta

0

Попробуйте использовать регулярное выражение. Более подробной информации here

var timePattern = /\b\d+\b/g; 
var extractedTime = "11 hrs and 34 mins".match(timePattern) 

извлеченное время должно иметь эти значения [ «11», «34»], так что вы разделить этот массив уже получить часы и минуты и положить их вместе.

Смежные вопросы