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

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


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

["nick", "javascript"]

最佳答案

应该这样做:

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正则表达式的结果,其中删除了第一个元素(它将是完整的匹配字符串)。

10-05 20:31
查看更多