我有一个令牌列表,用于生成仿日语单词,如下所示:
var syllables = ["chi","tsu","shi","ka","ki","ku","ke","ko","ta","te","to","sa","su","se","so","na","ni","nu","ne","no","ha","hi","fu","he","ho","ma","mi","mu","me","mo","ya","yu","yo","ra","ri","ru","re","ro","wa","wo"];
给出像“yoniyotachihochinitarehakemukenushihofure”这样的词,是否可以将它分成单独的标记,如[“yo”,“ni”,“yo”......使用RegExps?
到目前为止,我有
var s="";
for(var i=0;i<syllables.length;i++)
s+=("("+syllables[i]+")");
s+="+";
console.log(s);
var splitregex = new RegExp(s,"gi");
console.log(str.split(splitregex));
我回来了“['yoniyotachihochinitarehakemukenushihofure']”
答案 0 :(得分:3)
var syllables = ["chi","tsu","shi","ka","ki","ku","ke","ko","ta","te","to","sa","su","se","so","na","ni","nu","ne","no","ha","hi","fu","he","ho","ma","mi","mu","me","mo","ya","yu","yo","ra","ri","ru","re","ro","wa","wo"];
var r = new RegExp(syllables.join('|'), 'g');
var str = 'yoniyotachihochinitarehakemukenushihofure';
console.log(str.match(r));
// return ["yo", "ni", "yo", "ta", "chi", "ho", "chi", "ni", "ta", "re", "ha", "ke", "mu", "ke", "nu", "shi", "ho", "fu", "re"]
说明:它生成正则表达式/chi|tsu|.../g
,它只匹配列表中的每个音节