1

分や秒を含む時間文字列は次のようになります

29分15秒

区切り文字は単一のスペースです。数値には先行ゼロはありません。分または秒の部分(両方ではない)のいずれかを省略できます。それらの1つが欠落している場合は、区切り文字も欠落しています。つまり、以下はそのような時間文字列のすべての有効な例です。

1
分47秒
1分15秒
12分4秒

$1と$2でそれぞれ分と秒の数を返す正規表現を作成する必要があります。私はJavaScriptプログラムを書いていますが、実際のプログラミングではなく、問題のある正規表現を作成しています。

4

3 に答える 3

1

これは、分と秒の数値のみに一致します。

/(?:(\d+)m)? ?(?:(\d+)s)?/
于 2012-06-14T11:28:56.643 に答える
0

私があなたを正しく理解している場合:

var s = '29m 15s';
var r = /(?:(\d+)m)?\s*(?:(\d+)s)?/;
var m = s.match(r);

これにより、次のような配列が生成されます。

[ '29m 15s', '29', '15', index: 0, input: '29m 15s' ]

ここで、m [1]は分、m [2]秒です(これはオプションです)

于 2012-06-14T11:27:50.387 に答える
0

これは他の答えよりも冗長ですが、スペースを強制します。また、数字の長さが2文字を超えないようにします。

/^(?:(\d{1,2})m) (?:(\d{1,2})s)$|^(\d{1,2})[ms]$/

"13m 20s" //match
"13m" //match
"20s" //match
"13m20s" //no match
于 2012-06-14T11:40:18.070 に答える