2015-12-21 98 views
1

我有以下变量在String.match正则表达式

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集合中找到的值。

我试过这样做,使用基本的字符串连接,但我没有线索,当涉及正则表达式,任何指针?

回答

2

您可以使用正则表达式的字符串表示与RegExp构造,这样

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