2010-01-18 7 views
2

J'ai un certain nombre de cordes comme ceci:Parse un personnage d'une chaîne

var info = "Information4Table" 
var next = "Joe5Table" 
var four = "ERweer11Table" 
var nice = "ertertertn14Table" 

Je veux analyser le nombre entre le premier mot et la chaîne Table. Donc, pour le premier article, je veux obtenir 4 et dans le dernier je voudrais obtenir 14. Quelle serait la meilleure façon de le faire dans Javascript/jQuery?

Répondre

3

Vous pouvez utiliser une expression régulière pour obtenir le numéro de la chaîne:

var n = /\d+/.exec(info)[0]; 
2

Une autre option serait d'utiliser des expressions régulières pour prendre des numéros de la chaîne:

var my_str="ERweer11Table"; 
var my_pattern=/\d+/g; 
document.write(my_pattern.match(patt1)); 

Ce serait sortie « 11 »

2

Vous pouvez utiliser une expression régulière pour seulement ce genre de chose, particulièrement pratique/si le motif performant ne change pas:

var regex = new RegExp(/[0-9]+/); // or \d+ will also capture all digits 
var matches = +regex.exec(yourStringHere); 
var value = matches ? matches[0] : ""; 

Conserver autour de l'objet regex et vous pouvez l'utiliser pour tous vos besoins de traitement. La variable matches contiendra null si il n'y a pas de nombre dans la chaîne, ou un tableau avec les correspondances s'il y en avait un ou plusieurs. La valeur aura votre numéro en elle. L'opérateur '+' principal s'assure que c'est un type de nombre au lieu d'un type de chaîne.