javascript - 这个表达式中最后一个括号去哪里了

标签 javascript jquery regex

我有一个正则表达式,它将单词与我的数组匹配,但它没有显示最后一个括号。我的 JS 代码

function decodeEntities(s){
    var str, temp= document.createElement('p');
    temp.innerHTML= s;
    str= temp.textContent || temp.innerText;
    temp=null;
    return str;
}
 var code = ["<span>","<div>","<pre>","<spat>"];

    var string = code.join(", ");
   var string_to_pass="<span";
   var re =  new RegExp("(?:^|\\W)" + decodeEntities(string_to_pass) + "(\\w+)(?!\\w)", "g"), match, matches = [];
while (match = re.exec(string)) {
  matches.push(match[0]);
}
console.log(matches);

我在控制台中看到一个包含两个匹配项的数组,没有最后一个右括号。

Array [ "<span", " <spat" ]

我怎样才能阻止这个脚本删除最后一个括号>。请帮忙提前致谢

最佳答案

将您的正则表达式更改为,

var re =  new RegExp("(?:^|\\W)" + decodeEntities(string_to_pass) + "(\\w+\\W)", "g"), match, matches = [];

关于javascript - 这个表达式中最后一个括号去哪里了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28472264/

相关文章:

javascript - 暂停除激活的玩家之外的所有其他玩家。 <audio> 元素的 jQuery 音频插件

jquery - 仅使用 yepnope (modernizr.load) 将 selecvizr 加载到 <=IE8 时出现问题

javascript - 按钮 onclick 中的值不会增加

javascript - 如何检查背景是渐变还是纯色

javascript - 如果第一个字符不匹配,regexp exec 内部索引不会进行

javascript - ReactJS:操作 redux 后不重新渲染

javascript - 如何使 HTML 文档在浏览器中可写?

javascript - Kendo UI - 使用可观察 View 模型将模板动态加载到 kendo 窗口

javascript - 如何使用 JavaScript 循环遍历一个长字符串以在每次匹配后插入一个新字符串

javascript - 如何应用[^0-9]正则表达式模式javascript