String.match正则表达式中的变量

时间:2015-12-21 12:31:54

标签: javascript regex string

我有以下

EmployeeTable.prototype.xmlToArray = function(xml) {

    // Parse the XML string into a XMLDocument
    var xmlDoc = new DOMParser().parseFromString(xml, 'text/xml');

    var nodes = xmlDoc.getElementsByTagName("employee");
    var employees = [];

    for (var i = 0; i < nodes.length; i++) {
        employee = nodes[i];
        var innerHTML = employee.innerHTML;
        var name = innerHTML.filterEmployeesXML("name");
        console.log(name);
    }

};

调用函数

String.prototype.filterEmployeesXML = function(valToFind) {
    var regex = new RegExp(/<name>([^<]*)<\/name>/);
    var match = employee.innerHTML.match(regex);
    return match[1];
};

但是,我希望能够执行此操作的不只是name,即我希望能够filterEmployeesXML("jobTitle")等,其中valToFind是要找到的值在XML集合中。

我尝试使用基本的字符串连接来做到这一点,虽然我没有关于Regex,任何指针的线索?

1 个答案:

答案 0 :(得分:2)

您可以将正则表达式的String表示与RegExp构造函数一起使用,就像这样

new RegExp("<" + valToFind + ">([^<]*)<\/" + valToFind + ">");