2017-01-25 63 views
5

Próbuję utworzyć łaciński konwerter świni, który podzieli ciąg na pierwszą samogłoskę i przełączy pierwszy fragment na drugi (np. Pies -> ogd).Znajdź pierwsze samogłoski za pomocą Regex (Javascript)

Poniższy kod regex działa dla pojedynczych strun samogłosek, jednak gdy próbuje tłumaczyć słowa z wielu samogłosek, jest dzielenie ciąg w ostatniej samogłoski:

string.replace(/(\w+)([aeiou]\w+)/i, '$2$1')

Uruchomienie tego kodu na słowo "znaczenie" powoduje "ingmean" (podział na "i"), natomiast oczekuję powrotu "eaningm" (podział na "e")

Dzięki!

+0

Możesz chcieć być spec ific o * dokładnym * wyjściu próbujesz dostać – musefan

+0

@musefan Mam nadzieję, że zwrócę "eaningm" – jgrune

Odpowiedz

4

Trzeba dodać leniwy (?) Operator:

string.replace(/(\w+?)([aeiou]\w+)/i, '$2$1') 
5

To powinno załatwić sprawę

/([^aeiou]+)([aeiou])([a-zA-Z]+)/ 

I używać

$ 2 $ 3 $ 1