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><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
];
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!