Regex en utilisant javascript pour renvoyer des nombres justes

Si j'ai une chaîne "something12" ou "something102".

Comment utiliser Regex en javascript pour renvoyer uniquement les numéros?

Malcolm

Expressions régulières:

var numberPattern = /\d+/g; 'something102asdfkj1948948'.match( numberPattern ) 

Cela renverrait un objet avec deux éléments à l'intérieur, '102' et '1948948'. Opérer comme vous le souhaitez. Si cela ne correspond pas, il renverra nulle.

En supposant que vous ne trouvez pas de décimales complexes, cela devrait suffire, je suppose.

Vous pouvez également supprimer tous les caractères non-chiffres ( \D ou [^0-9] ):

 'abc123cdef4567hij89'.replace(/\D/g, ''); // returns '123456789' 

Pour le nombre avec la fraction décimale et le signe moins, j'utilise cet extrait:

  var NUMERIC_REGEXP = /[-]{0,1}[\d.]*[\d]+/g; '2.2px 3.1px 4px -7.6px obj.key'.match(NUMERIC_REGEXP) // return ["2.2", "3.1", "4", "-7.6"] 

Mettre à jour:

J'ai trouvé un outil qui vous permet de modifier l'expression régulière visuellement: JavaScript Regular Expression Parser & Visualizer .

Mettre à jour:

Voici un autre avec lequel vous pouvez même déboguer regexp: testeur et débogueur regex en ligne .

Je suppose que vous voulez obtenir des numéros de la chaîne. Dans ce cas, vous pouvez utiliser ce qui suit:

 // Returns an array of numbers located in the string function get_numbers(input) { return input.match(/[0-9]+/g); } var first_test = get_numbers('something102'); var second_test = get_numbers('something102or12'); var third_test = get_numbers('no numbers here!'); alert(first_test); // [102] alert(second_test); // [102,12] alert(third_test); // null 

Si vous voulez seulement des chiffres:

 var value = '675-805-714'; var numberPattern = /\d+/g; value = value.match( numberPattern ).join([]); alert(value); //Show: 675805714 

Maintenant, vous obtenez les chiffres joints

Les réponses fournies ne correspondent pas à votre question, ce qui impliquait un numéro de suite. Aussi, rappelez-vous que vous obtenez une chaîne de retour; Si vous avez réellement besoin d' un numéro, lancez le résultat:

 item=item.replace('^.*\D(\d*)$', '$1'); if (!/^\d+$/.test(item)) throw 'parse error: number not found'; item=Number(item); 

Si vous rencontrez des identifiants numériques sur une page Web, votre code pourrait également accepter un Element , en extrayant le numéro de son id (ou son premier parent avec un id ); Si vous avez un Event portée de main, vous pouvez probablement obtenir l' Element de cela, aussi.

 var result = input.match(/\d+/g).join([])