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

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

我尝试使用基本的字符串连接来做到这一点,但我对正则表达式一无所知,有任何指示吗?

最佳答案

您可以将正则表达式的字符串表示形式与 RegExp 构造函数一起使用,如下所示

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

关于javascript - String.match 正则表达式中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34395774/

相关文章:

javascript - 绑定(bind)嵌套元素

javascript - 如何将 data.key --> element.id 绑定(bind)到 d3js 中的现有标记上?

javascript - 关闭Iframe模态框后刷新父页面

regex - Spamassassin 的自定义规则(用于主题行过滤)不起作用

excel - 循环字符串,在分隔符之间提取数据

java - 在 java 中,读取 url 并将其拆分为多个部分的最佳方法是什么?

javascript - 这两个 javascript 表达式有什么区别?

regex - 在 Linux 文件名中替换双引号以及其他无效的 Windows 文件名字符

数字后的 MYSQL REGEXP_REPLACE

java - 如何根据值用对象参数填充数组?