2011-10-05 17 views
16

jQueryまたはjavascriptを使用して文字列内の整数の数をどのように数えることができますか?例えばg66ghy7について文字列内の整数の数を数えます。

= 3

+1

これは宿題ですか?その場合は、[宿題](http://stackoverflow.com/questions/tagged/homework)タグを追加してください。 –

+5

66は整数ではありませんか?私はあなたが "桁"を意味すると思う:) –

答えて

28
alert("g66ghy7".replace(/[^0-9]/g,"").length); 

ルックhere

+0

ちょうどこれを混乱させないでください: '/^[0-9]/g' :) http://jsfiddle.net/a52bokjf/1/ –

1

もう少しの方法は、各文字を数値に変換することです。それが失敗しなければ、カウンターを上げてください。

var sTest = "g66ghy7"; 

var iCount = 0; 
for (iIndex in sTest) { 
    if (!isNaN(parseInt(sTest[iIndex]))) { 
     iCount++; 
    } 
} 
alert(iCount); 

また、私のjsfiddleを参照してください。

5

最も簡単な解決策は、正規表現を使用してをすべて置換し、数値をに置き換え、後でその長さを引き出すことです。次のことを考えてみましょう:

var s = 'g66ghy7'; 
alert(s.replace(/\D/g, '').length); //3 
+0

.replace( '/ \ d/g')で十分ですか? –

+0

'\ D'は非数値を意味するので、' s.replace(/ \ D/g、 '') ' –

+0

@RicardoTomasi - ありがとうございます。 – f0x

5

私はこれはかなり/シンプル見て見つける:

var count = ('1a2b3c'.match(/\d/g) || []).length 

A正規表現は、おそらく(it appears)のパフォーマンスが向上します:

var r = new RegExp('\\d', 'g') 
    , count = 0 

while(r.exec('1a2b3c')) count++; 
関連する問題