鍍金池/ 問答/HTML/ 求助一條正則

求助一條正則

字符串可能是

單位是[年,月,星期,天,小時(shí),分鐘,秒];
我出來的時(shí)間是形如:
1年3星期1小時(shí),
10月3天10小時(shí)4分鐘
1天5小時(shí)6分鐘12秒
數(shù)值是數(shù)字,單位就是上面的.

我想拿到第一級的,上面三個(gè)分別拿到'1年','10月','1天'

請問能用正則拿到嗎?

回答
編輯回答
雅痞

str.match(/^(\d+\D+)/)

2017年12月31日 00:33
編輯回答
枕頭人

正則表達(dá)式是:/(\d(年|月|星期|天|小時(shí)|分鐘|秒))(\d(年|月|星期|天|小時(shí)|分鐘|秒))*/

匹配完成后取正則表達(dá)式中的第一個(gè)分組,也就是返回?cái)?shù)組中的第二個(gè)元素:比如:

var result = '1年3星期1小時(shí)'.match(/(\d(年|月|星期|天|小時(shí)|分鐘|秒))(\d(年|月|星期|天|小時(shí)|分鐘|秒))*/);

console.log(result) //["1年3星期1小時(shí)", "1年", "年", "1小時(shí)", "小時(shí)", index: 0, input: "1年3星期1小時(shí)"]

result[1] //"1年"
2018年8月16日 04:21
編輯回答
離夢
"1年3星期1小時(shí)".replace(/(\d*.*?)\d.*/, "$1") //1年
"10月3天10小時(shí)4分鐘".replace(/(\d*.*?)\d.*/, "$1") //10月
"1天5小時(shí)6分鐘12秒".replace(/(\d*.*?)\d.*/, "$1") //1天
2017年12月20日 06:44