使用Regex从HTML标记属性中获取字符串 - JavaScript

时间:2016-11-14 18:35:54

标签: javascript jquery html regex

我对Regex很新,但我认为这是最好的方法。我真的需要将HTML标记属性中的文本添加到能够使用的字符串数组中。我有多个带有onclick属性的<span>标记。它是我需要的属性中的文本。我会举个例子。

<span class="ord" onclick="top.wiki_ord_klick('abstrakt','icke konkret, ogripbar')">abstrakt</span><br>

这是一个带有onclick属性的span类。我想要访问的是top.wiki_ord_klick(...)中的单词。我希望它们是单独制作的字符串并放入数组中。结果将是

var result = ["abstrakt", "icke konkret, ogripbar"];

我该怎么做?

1 个答案:

答案 0 :(得分:2)

以下使用match()和正则表达式/'.+?'/。这匹配单引号(包括引号)之间的所有内容,并将参数作为数组返回。

然后使用map()遍历数组以删除单引号。

var span = document.querySelector('span.ord'),  //get the <span> element
    click = span.onclick.toString(),            //get its inline click event as a string
    parms = click.match(/'.+?'/g);              //get an array of the onclick parameters

parms = parms.map(function(parm) {
  return parm.replace(/'/g, '');                //remove single quotes
});

console.log(parms);
<span class="ord" onclick="top.wiki_ord_klick('abstrakt', 'icke konkret, ogripbar')">abstrakt</span>