JS:正则表达式和全局匹配()没有创建数组

时间:2014-11-21 02:19:52

标签: javascript arrays regex

我尝试使用match()来解析一些文本并返回文本显示的次数。我通过使用全局匹配然后在从匹配创建的数组上调用length来执行此操作。相反,我只是得到一个包含单个元素的数组。

$('button').click(function () {
    checkword = "/" + specialWord + "/g";
    finalAnswer = userText.match(specialWord);
    console.log(finalAnswer);
    $('#answer').html(finalAnswer + '<br>' + finalAnswer.length);
    return finalAnswer;
});

例如,我搜索&#39;是&#39;在&#34;这是&#34;应该返回一个长度为2的数组,对吗?

小提琴:http://jsfiddle.net/

1 个答案:

答案 0 :(得分:2)

使用RegExp构造函数执行此操作,您需要将.match(specialWord)更改为checkword

checkword = new RegExp(specialWord, "g");
finalAnswer = userText.match(checkword);