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
Libérer: 2024-12-06 10:45:11
original
738 Les gens l'ont consulté

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, '');
Copier après la connexion

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
Copier après la connexion

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"
Copier après la connexion

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><div class="code" style="position:relative; padding:0px; margin:0px;"><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
Copier après la connexion

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

if (str.replace(res[i], "") === num)
  return 'num = str.replace(/' + res[i].source + '/g, "")';
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal