Мне нужно извлечь только "40: 37.298s" из:
Total time: 40:37.298s
с использованием JS, но я новичок в JS, может кто-нибудь помочь?
> 'Total time: 40:37.298s'.substr(12) '40:37.298s'
Если вы хотите использовать регулярные выражения для большей гибкости:
> /([0-9]+:[0-9]+\.[0-9]+s)/.exec('Total time: 40:37.298s')[1] '40:37.298s'
Есть много способов сделать это. Вот один из них:
var str = "Total time: 40:37.298s"; str.split(": ")[1]
В большинстве случаев я предпочитаю разбивать некоторые известные точки, а не пытаться извлечь конкретную подстроку (как показали другие) по следующим причинам:
var time = 'Total time: 40:37.298s'; time = time.match(/\d{1,2}:\d{1,2}\.\d+s/);
http://jsfiddle.net/ypzgJ/
Я бы сказал, используйте RegEx, как [:\.0-9]*s
[:\.0-9]*s
, например,
yourText.match("regex")
, в вашем случае это будет
"Total time: 40:37.298s".match("[:\.0-9]*s")[0]
Возвращается 40:37.298s
40:37.298s
var item = 'Total time: 40:37.298s'; var pattern = /\d{1,2}\:\d{2}\.\d{3}s/g; var res = pattern.exec(item);
То есть:
var result = "Total time: 40:37.298s".replace(/^.*([0-9]{2}:[0-9]{2}\.[0-9]{3}s)/g,'$1')
метод подстроки - это то, что вы ищете:
"Total time: 40:37.298s".substring("Total time: ".length);