我有一个标记列表,用于生成仿日语单词,如下所示:
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”这样的词,是否可以使用 RegExp 将它拆分成单独的标记并放入一个数组,如 [“yo”,“ni”,“yo”...”?
到目前为止,我有
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']”
最佳答案
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
只匹配列表中的每个音节
关于javascript - 如何从已知标记列表中标记字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20648572/