javascript - 如何从已知标记列表中标记字符串?

标签 javascript regex node.js

我有一个标记列表,用于生成仿日语单词,如下所示:

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"] 

http://jsfiddle.net/T8LeY/

解释:它生成的正则表达式 /chi|tsu|.../g 只匹配列表中的每个音节

关于javascript - 如何从已知标记列表中标记字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20648572/

相关文章:

javascript - 如何使用 Node JS 驱动程序创建新的 MongoDb 数据库

javascript - 如何在 Puppeteer 中查找 document.activeElement

javascript - 如何在没有文本的情况下向 TD 添加类?

javascript - 如何在 PHP 内的 Javascript 中输入 PHP

python - 在 python 3.7 中检索具有零长度匹配的 re.sub() 的 python 3.6 处理

javascript - dotenv API 凭证字符串或不带引号的

javascript - 使用 json 初始化 KnockOut 模型

javascript - 如何用正则表达式替换所有字符

php - 基本正则表达式 PHP 问题

javascript - express |异步发出多个http请求