Maison >interface Web >js tutoriel >Comment extraire des nombres à partir de chaînes en JavaScript ?

Comment extraire des nombres à partir de chaînes en JavaScript ?

DDD
DDDoriginal
2024-12-06 10:45:11746parcourir

How to Extract Numbers from Strings in JavaScript?

Extraire des nombres à partir de chaînes en JavaScript : un guide complet

Lorsque vous travaillez avec des chaînes en JavaScript, il est souvent nécessaire d'en extraire des nombres spécifiques. Cela peut survenir dans divers scénarios, tels que l'analyse des identifiants d'éléments DOM ou l'extraction de données numériques à partir de fichiers texte.

Exemple spécifique : extraction de nombres à partir d'une chaîne

Considérez un chaîne comme "#box2" où nous devons extraire uniquement le chiffre 2. En utilisant le code suivant extrait :

var thestring = $(this).attr('href');
var thenum = thestring.replace(/(^.+)(\w\d+\w)(.+$)/i, '');

renverrait toujours "#box2" dans l'alerte. La raison en est que l'expression régulière utilisée ne capture pas correctement les caractères non numériques avant et après le nombre.

Solution pour un exemple spécifique

Pour résoudre ce problème pour l'exemple spécifique de "#box2", nous pouvons utiliser le code suivant :

var thenum = thestring.replace(/^\D+/g, ''); // Replace all leading non-digits with nothing

Cette expression régulière supprime tous les caractères non numériques de début de la chaîne, ce qui supprime efficacement isoler le nombre.

Solution générale utilisant Regex

Pour les chaînes plus complexes, une approche plus générale consiste à utiliser une expression régulière qui correspond uniquement au nombre :

thenum = "foo3bar5".match(/\d+/)[0] // "3"

Cette expression renverra le premier ensemble de chiffres consécutifs dans la chaîne.

Regex Générateur

Pour des expressions régulières plus complexes, vous pouvez utiliser un outil générateur d'expressions régulières, tel que celui fourni ci-dessous :

`


function getre(str, num) {<br> if (str === num) return "nice essayez";<br> var res = [</p><pre class="brush:php;toolbar:false">[/^\D+/g, /\D+$/g], // Remove leading/trailing non-digits
[/^\D+|\D+$/g], // Remove both leading and trailing non-digits
[/\D+/g], // Remove all non-digits
[/\D.*/g], // Remove all non-digits from the end
/.*\D/g, // Remove all non-digits from the start
/^\D+|\D.*$/g, // Remove non-digits from both ends
/.*\D(?=\d)|\D+$/g, // Remove non-digits followed by digits or from the end

];
for (var i = 0; i < res.length; i )

if (str.replace(res[i], "") === num)
  return 'num = str.replace(/' + res[i].source + '/g, "")';

retour "aucune idée";
}

function update() {
$ = function(x) { return document.getElementById(x) };
var re = getre($('str').value, $('num').value);
$('re').innerHTML = "Numex parle : " re "";
}

` :

Cet outil fournit une interface utilisateur dans laquelle vous pouvez saisir votre chaîne d'origine et le numéro souhaité pour extrait. Il affichera alors le code JavaScript nécessaire pour extraire le numéro.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn