如何用其他符号替换符号取决于它在单词中的位置?

时间:2017-04-17 11:18:51

标签: javascript regex

例如,如果a位于第一个音节且同一个单词包含i,请将a替换为ä

Barfio -> Bärfio Foobar -> Foobar

2 个答案:

答案 0 :(得分:0)

newword=word.split("");
if(newword.findIndex(letter=>letter=="a")<3) newword[newword.findIndex(letter=>letter=="a")]="ä";
newword=newword.join("");

http://jsbin.com/jufujumusi/edit?console

或者更有趣:

newword=word.split("").reduce((word,letter,index)=>word+(index<3?{"a":"ä","o":"ø","u":"ů","e":"ë","i":"ï"}[letter]||letter:letter),"");

http://jsbin.com/yibegiboyu/edit?console

答案 1 :(得分:0)

分析单词音节是相当复杂的工作,纯正则表达式不是一个正确的工具。但是,如果我们可以将要求简化为a,然后i在同一个单词的某个位置&#34;,positive lookbehinds就是您正在寻找的内容:< / p>

a(?=\w*i)

演示:https://regex101.com/r/zOrjBg/1