[英]Javascript: Find all indices of timestamp substrings
“X”是一個數字,我想找到所有出現的子字符串,格式為
"XX:XX:XX" || "XX:XX" || "X:XX"
在一個段落內進行進一步操作。 除了循環,還有更優雅的方式嗎?
筆記:
您可以匹配兩組全部或部分。
const time = /\d\d:\d\d:\d\d|\d?\d:\d\d/g, string = 'abc1:23def12:34ghi12:34:56jkl98:7abc1:23def12:34ghi12:34:56jkl', result = string.match(time); console.log(result);
這就是正則表達式的用途:
/(\d{1,2}):(\d{2})(?::(\d{2}))?/g
然后,您可以將它與任何正則表達式方法一起使用,例如.matchAll
:
console.log(Array.from('asd50:foo 12:27 bar13:49:21baz 5:41'.matchAll(/(\d{1,2}):(\d{2})(?::(\d{2}))?/g)))
對於更精確的時間戳匹配(例如沒有35:70:99
),您可以使用一些正則表達式魔法(請注意,它使用后向,這是 ES2018 中的新功能):
/(?<!\d|:)([01]?\d|2[0-3]):([0-5]\d)(?::([0-5]\d))?(?!\d|:)/g
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.