2010-10-08 4 views
11

Dans l'exemple ci-dessous, le texte est sélectionné à l'aide de jQuery. Comment pouvons-nous isoler la monnaie en se débarrassant des autres données?Utilisation d'expressions régulières (regex) pour remplacer le texte sélectionné dans jQuery/JavaScript

Cette tentative d'utiliser replace de JavaScript ne fonctionne pas:

var symbol = $("div.price > h5 > div.num").text().replace(/[\d.]*/, ""); 

C'est l'exemple HTML; le sélecteur jQuery fonctionne:

<div class="price"> 
    <h5 class="biguns"> 
    <div class="num"> 
     €12.28 
    </div> 
    Lowest Price Per Night 
    </h5> 
</div> 

Répondre

24

Le point doit être échappé othwerwise il correspondra à chaque caractère Vous devez donc définir le modificateur global:

var symbol = $("div.price > h5 > div.num").text().replace(/[\d\.]+/g, ""); 
+1

jQuery n'a pas de référence regex, regex et remplacer une fonction re deux javascript pur. -1 pour commentaire inutile. – mck89

+1

ok, puis JS regex référence –

+3

ce n'est pas inutile, j'ai tapé 'jquery regex' dans un moteur de recherche web et voir cette question avec des exemples, mais pas de liens vers une liste complète –

2
var symbol = $("div.price > h5 > div.num").text().replace(/\d+\.?\d+/, ""); 
+0

Malheureusement, cela ne correspond pas à 12 sans décimales. Ne peut pas toujours supposer que vous aurez une entrée cohérente. –

+0

-1 pour aucun lien vers la référence regex jQuery –

+0

js référence regex même –

0

Si la monnaie est toujours le premier caractère et il est long d'un caractère, vous pouvez facilement l'obtenir avec

var symbol = $(".num").text().substr(0,1); 
Questions connexes