2010-11-23 22 views
1

J'ai vraiment du mal à trouver une solution à ce que je veux trouver chaque instance d'un nombre dans un paragraphe de texte.Jquery Rechercher et remplacer le numéro

<div id='text'> 
this is the number 20px and this is the number 100 and this is the number 10. 
</div> 

Donc je veux prendre cela et avoir ouput ce qui suit. 20 100 10

<script type="application/javascript"> 
     $(document).ready(function() { 

     var text = $('.text').text().toString().search(new RegExp(/^[0-9]+$/ i)); 

     alert(text);  

     });     
     </script> 

de l'alerte je veux juste à la sortie des chiffres dans le texte-à-dire 20 100 10, i c'est maintenant loin mais toute aide pour me mettre dans la bonne direction je suis frappais ma tête contre un mur, merci.

+0

Votre modèle devrait être '/ \ d +? /', Ne peut pas penser du droit funcs en ce moment. – Zlatev

+1

S'il y a des nombres négatifs (-100) si vous capturez -100 ou 100? –

+0

grand point Mikael J'ai aussi modifié mon expression rationnelle pour les nombres négatifs et décimaux. :) –

Répondre

1
$('#text').html().match(/\-?\d+(\.\d+)?/g).join(' ') 

crée une chaîne avec tous les nombres trouvés dans l'élément div.

pour obtenir un tableau de tous les nombres trouvés simplement supprimer la note méthode .join()

plase que vous avez « texte » comme identifiant de votre élément, vous devez donc se référer à lui comme $('#text') et non comme $('.text')

1

Je ne sais pas où vous devez remplacer quoi que ce soit, mais de trouver tous les numéros, quelque chose comme cela suffit:

// results an array of numbers 
var results = $('#text').text().match(/\d+/g); 
+0

Droite, mais ne correspond pas aux nombres à un seul chiffre – Zlatev

+1

Zlatev, + quantificateur signifie 1 ou plusieurs chiffres –

+0

'/ \ d + /. Test (" 1 ")' renvoie vrai, car + signifie un ou plusieurs chiffres – Harmen

1

Si vous utilisez ceci:

var txt = $('#text').html().match(/\d+/g) 

il vous donnera un tableau des numéros

+0

Désolé, Harmen - avait ouvert et affiché avant que j'ai vu votre réponse. –