2016-11-14 139 views
0

我是非常新的正則表達式,但我認爲這是做到這一點的最好方法。我真的需要將HTML標記屬性中的文本轉換爲可以處理的字符串數組。我有多個帶有onclick屬性的<span>標籤。這是我需要的屬性內的文本。我會給你一個例子。使用正則表達式從HTML標記屬性獲取字符串 - JavaScript

<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

很抱歉給您帶來不便!我把它當作兩根琴絃,icke konkret和ogripbar應該只有一根琴絃。我會更新這個問題。 – soomro

回答

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>

相關問題