で区切られた分と秒を含む文字列を解析しようとしています:
。min と secs はどちらもオプションです (ただし、いずれかを指定する必要があります)。これが私の正規表現から得られると期待するものです:
'0' // => '', '0'
'30' // => '', '30'
':30' // => '', '30'
'1:' // => '1', ''
'1:30' // => '1', '30'
空の文字列を取得する必要はありません。parseInt(value, 10) || 0
afterwhile を使用して解析されるため、 、 、 、 ... の可能性が0
あり''
ますundefined
。
私はこの正規表現を試しました:
^([0-9]+)?:?([0-9]+)?$
ただし、値が 1 つだけで区切り記号がない場合は、1 分と見なされます。
'0' // => '0', '' <= wrong result
'30' // => '30', '' <= wrong result
':30' // => '', '30'
'1:' // => '1', ''
'1:30' // => '1', '30'
何か案が?
編集:私の現在の実装(正規表現なし)は次のようになります:
var min, parts, sec, bp;
bp = '1:30';
parts = bp.split(':');
if (parts.length === 2) {
min = parts[0];
sec = parts[1];
} else {
min = 0;
sec = parts[0];
}