变量在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集合中找到的值。
我试过这样做,使用基本的字符串连接,但我没有线索,当涉及正则表达式,任何指针?
答
您可以使用正则表达式的字符串表示与RegExp
构造,这样
new RegExp("<" + valToFind + ">([^<]*)<\/" + valToFind + ">");