2016-07-14 3 views
0

これは非常に基本的な質問ですが、私は本当にその概念を理解することはできません。私はただの数字をチェックしておりますので、私はちょうど11を取得する必要があります値を印刷するとき私の理解によると、今正規表現(マッチ関数)、javascript

var t = '11:59 am'; 
t.match(/^(\d+)/); 

:私は、次の正規表現を持っています。しかし、私は11,11を取得します。 t.match(/^(\d+)/)[0]のように必要な値を選択するには0番目の要素を使用する必要があります。

答えて

1

数字の周囲にcapture group, (),を使用しているためです。でこれを交換してみてください:

t.match(/^\d+/); 

注:それは.match()が何をするかだけだから、これはまだ、配列を返します。

+1

ありがとうございます。今は分かります。私はキャプチャグループについて知っていません。 –

+1

うれしい私は助けることができます。申し訳ありませんが、わかっている限り、データの配列ではなく単純な文字列を返すJS正規表現のメソッドはありません。 ['/ ')'(11) 'が返されます。['/^ \ d+/.exec(t)'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec) ] '同様に。 – Sam

1

match()always returns an array一致するものがある場合。要素[0]は全体一致であり、要素[1]は最初の括弧内のものです。