Prenons un scénario non-DOM dans lequel vous souhaitez supprimer tous les caractères non numériques d'une chaîne à l'aide de JavaScript/ECMAScript. Tous les caractères compris dans la plage 0 - 9
doivent être conservés.
var myString = 'abc123.8<blah>';
//desired output is 1238
Comment y parvenez-vous en JavaScript? N'oubliez pas qu'il s'agit d'un scénario non-DOM. Par conséquent, jQuery et les autres solutions impliquant des événements de navigateur et de frappe ne conviennent pas.
Utilisez la méthode .replace
de la chaîne avec une expression rationnelle de \D
, qui est une classe de caractères abrégés qui correspond à tous les caractères non numériques:
myString = myString.replace(/\D/g,'');
Si vous en avez besoin pour laisser le point pour les nombres flottants, utilisez cette option.
var s = "-12345.50 €".replace(/[^\d.-]/g, ''); // gives "-12345.50"
Utilisez une expression régulière si votre implémentation de script les prend en charge. Quelque chose comme:
myString.replace(/[^0-9]/g, '');
Vous pouvez utiliser une RegExp pour remplacer tous les caractères non numériques:
var myString = 'abc123.8<blah>';
myString = myString.replace(/[^\d]/g, ''); // 1238
Quelque chose dans le genre de:
yourString = yourString.replace ( /[^0-9]/g, '' );
essayer
myString.match(/\d/g).join('')
var myString = 'abc123.8<blah>'
console.log( myString.match(/\d/g).join('') );