166 votes

Regex en utilisant javascript pour renvoyer juste des nombres

Si j'ai une chaîne comme "something12" ou "something102", comment utiliserais-je un regex en javascript pour renvoyer juste les nombres de parties ?

274voto

meder Points 81864

Expressions régulières :

var numberPattern = /\d+/g;

'something102asdfkj1948948'.match( numberPattern )

Cela retournerait un tableau avec deux éléments à l'intérieur, '102' et '1948948'. Opérez comme vous le souhaitez. Si elle ne correspond pas, elle retournera NULL.

Pour les concaténer :

'something102asdfkj1948948'.match( numberPattern ).join('')

En supposant que vous n'ayez pas affaire à des décimales complexes, cela devrait suffire.

220voto

CMS Points 315406

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

let word_With_Numbers = 'abc123c def4567hij89'
let word_Without_Numbers = word_With_Numbers.replace(/\D/g, '');

console.log(word_Without_Numbers)

18voto

Iván Martínez Points 181

Si vous ne voulez que des chiffres :

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

Maintenant, vous avez les chiffres joints

9voto

Andrew Moore Points 49765

Je suppose que vous voulez obtenir le (s) nombre(s) 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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X