2010-10-08 14 views
11

W poniższym przykładzie tekst jest wybierany za pomocą jQuery. Jak możemy wyizolować walutę, pozbywając się innych danych?Używanie wyrażeń regularnych (regex) do zamiany zaznaczonego tekstu w jQuery/JavaScript

Ta próba z użyciem JavaScript na replace nie działa:

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

Jest to przykład HTML; selektor jQuery działa:

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

Odpowiedz

24

Kropka musi być uciekł othwerwise będzie on pasował każdy znak i trzeba ustawić globalnego modyfikatora:

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

jQuery nie ma odwołania do regex, regex i zastąpienia funkcji a zarówno czysty javascript. -1 dla niepotrzebnego komentarza. – mck89

+1

ok, a następnie JS regex reference –

+3

nie jest bezużyteczny, wpisałem "jquery regex" w wyszukiwarce internetowej i zobacz to pytanie z przykładami, ale bez linków do wyczerpującej listy –

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

Niestety nie pasuje 12 bez miejsc po przecinku. Nie zawsze można założyć, że będziesz mieć spójne dane wejściowe. –

+0

-1 bez linku do odwołania do repox jQuery –

+0

js regex reference even –

0

Jeśli waluta jest zawsze pierwszy znak i ma długość jednej postaci, można go łatwo uzyskać z

var symbol = $(".num").text().substr(0,1); 
Powiązane problemy