-1
使用.match()
,.replace()
和其他正則表達式-事情,我需要做的正則表達式,它可以改變那些例如輸入字符串:哪個RegExp匹配兩對數字之間的冒號?
'123'
'1234'
'qqxwdx1234sgvs'
'weavrt123adcsd'
正常輸出的:
'1:23'
'12:34'
(所以,三數字羣集必須是x:xx格式)。
使用.match()
,.replace()
和其他正則表達式-事情,我需要做的正則表達式,它可以改變那些例如輸入字符串:哪個RegExp匹配兩對數字之間的冒號?
'123'
'1234'
'qqxwdx1234sgvs'
'weavrt123adcsd'
正常輸出的:
'1:23'
'12:34'
(所以,三數字羣集必須是x:xx格式)。
你可以使用String.prototype.replace()
的正則表達式匹配1或2位數字後跟2位數字。 $1
是第一個捕獲組(1或2位數),$2
是第二個捕獲組(2位數)。 $1:$2
是替代品,它將替換第一個捕獲組($1
)後接冒號(:
)的匹配文本,然後是第二個捕獲組($2
)。
var string = '123';
string = string.replace(/^(\d{1,2})(\d{2})$/, '$1:$2');
console.log(string); // "1:23"
正則表達式的說明:
^ the beginning of the string
( group and capture to $1:
\d{1,2} digits (0-9) (between 1 and 2 times
(matching the most amount possible))
) end of $1
( group and capture to $2:
\d{2} digits (0-9) (2 times)
) end of $2
$ before an optional \n, and the end of the
string
我應該爲你的其他情況下,你的代碼嗎?無論如何插入':'或不? –
我認爲您需要提供更多關於您的需求的信息,以瞭解在哪些情況下應放置冒號。例如,「123」應該變成「1:23」還是「12:3」?你希望字母被忽略還是拋出錯誤? – neuronaut
RegExps不插入字符串,tey **匹配**字符串。 –