使用正则表达式找到第一个元音(Javascript)

时间:2017-01-25 16:13:17

标签: javascript regex string split

我正在尝试创建一个猪拉丁转换器,它将字符串分割为第一个元音,并将第一个子字符串切换为第二个子字符串(例如dog - > ogd)。

以下正则表达式代码适用于单个元音字符串,但是当尝试翻译具有多个元音的单词时,它会将字符串拆分为最后一个元音:

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

在“含义”一词上运行此代码会导致“ingmean”(在'i'上分裂),而我期望返回“eaningm”(在'e'上分裂)

谢谢!

2 个答案:

答案 0 :(得分:5)

这应该可以解决问题

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

并使用

  

$ 2 $ 3 $ 1

答案 1 :(得分:4)

您需要添加延迟(?)运算符:

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