come posso contare il numero di numeri interi in una stringa utilizzando jQuery o javascript?Contare il numero di numeri interi in una stringa
Per esempio g66ghy7 = 3
come posso contare il numero di numeri interi in una stringa utilizzando jQuery o javascript?Contare il numero di numeri interi in una stringa
Per esempio g66ghy7 = 3
alert("g66ghy7".replace(/[^0-9]/g,"").length);
sguardo here.
Heh, solo per non scherzare con questo: '/^[0-9]/g' :) http://jsfiddle.net/a52bokjf/1/ –
Un'alternativa un po 'più lunga è convertire ciascun carattere in un numero; se non fallisce, solleva il contatore.
var sTest = "g66ghy7";
var iCount = 0;
for (iIndex in sTest) {
if (!isNaN(parseInt(sTest[iIndex]))) {
iCount++;
}
}
alert(iCount);
Vedere anche il mio jsfiddle.
La soluzione più semplice sarebbe utilizzare un'espressione regolare per sostituire tutto il ma i valori numerici e tirare fuori la lunghezza in seguito. Si consideri il seguente:
var s = 'g66ghy7';
alert(s.replace(/\D/g, '').length); //3
Non dovrebbe essere s .replace ('/ \ d/g') abbastanza? –
'\ D' significa non numerico, quindi' s.replace (/ \ D/g, '') ' –
@RicardoTomasi - grazie, aggiornato poiché è un utilizzo migliore. – f0x
Trovo che questo guardare piuttosto/semplice:
var count = ('1a2b3c'.match(/\d/g) || []).length
Un RegExp probabilmente prestazioni migliori (it appears):
var r = new RegExp('\\d', 'g')
, count = 0
while(r.exec('1a2b3c')) count++;
È questo un compito? In tal caso, aggiungi il tag [homework] (http://stackoverflow.com/questions/tagged/homework). –
66 non è un numero intero? Penso che tu intendessi "cifre" :) –