2012-03-05 66 views

回答

6
> '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' 
0

的子方法是你在找什麼:

"Total time: 40:37.298s".substring("Total time: ".length); 
2

有很多方法可以做到這一點。這裏有一個:

var str = "Total time: 40:37.298s"; 
str.split(": ")[1] 

在大多數情況下,我更喜歡一些已知的支點分裂,而不是試圖提取特定字符串(如其他人所示),原因如下:

  • 它更靈活;這將仍然工作,如果該字符串的第一部分包含了輕微的變化(但子方法不會)
  • 它更容易看到真實被提取的內容(但子方法需要我手動字符串來驗證計數位置我選擇了正確的事情)
0
var result = "Total time: 40:37.298s".replace(/^.*([0-9]{2}:[0-9]{2}\.[0-9]{3}s)/g,'$1') 
0
var item = 'Total time: 40:37.298s'; 
var pattern = /\d{1,2}\:\d{2}\.\d{3}s/g; 
var res = pattern.exec(item); 

即:

  • \ d {1,2}的一個或兩個數字
  • \:在 ':' 炭
  • \ d {2}兩個數字
  • 。 '。'炭
  • \ d {3}三位數
  • S中的 'S' 字符
+0

請注意,Regexp'.exec()'會將數組中的匹配分配給'res',因此要從上面的代碼中獲取實際的匹配值,您需要查詢'res [0]'。 – 2012-03-06 12:44:27

0

我會說使用像[:\.0-9]*s

例如

yourText.match("regex") 

正則表達式,你的情況這將是

"Total time: 40:37.298s".match("[:\.0-9]*s")[0] 

它會返回40:37.298s