2015-12-21 56 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 + ">");