在Javascript中从字符串模式中获取单词

时间:2016-03-20 21:02:22

标签: javascript node.js

我试图使用模式动态地从字符串中获取单词。模式和输入看起来像这样

var pattern = "hello this is %var% using %var%";
var input = "hello this is nick using javascript";

现在我希望能够拥有像这样的变量数组

["nick", "javascript"]

2 个答案:

答案 0 :(得分:2)

这应该这样做:

var pattern = "hello this is %var% using %var%";
var input = "hello this is nick using javascript";

var re = new RegExp(pattern.replace(/%var%/g, '([a-z]+)'));
var matches = re.exec(input).slice(1); // <-- ["nick", "javascript"]

变量reRegExp,其模式为pattern变量,每个%var%实例都替换为小写字母的捕获组(必要时扩展)

然后

matches是在re字符串上执行的input正则表达式的结果,其中第一个元素被删除(这将是完全匹配的字符串)。

答案 1 :(得分:0)

var pattern = "hello this is %var% using %var%";
var input = "hello this is nick using javascript";
var outputArr = [];

pattern.split(" ").forEach(function (e, i){
  e === "%var%" ? outputArr.push(input.split(" ")[i]) : "";
});

outputArr是所需的数组。