2013-06-05 69 views
-4

我怎樣才能得到這樣text example文本,如果我使用正則表達式中的JavascriptjQuery的寫道:<font size="50"> text example </font>的Javascript正則表達式的HTML標籤

例如: 如果我在

 var x = window.prompt("Edit this text: ",messageText.getText()); 

<font size="50"> Font 50 </font> 

我想的

console.log(x) 

輸出只是一個字體50沒有標籤。

謝謝

+2

我建議你多一點詳細的解釋,你的問題,因爲它是沒有多大意義,並可能會得到downvoted。 –

+0

爲什麼你需要爲此使用正則表達式? JavaScript(和jQuery)具有從DOM元素中提取內容的功能。在給出的例子中,$('font')。text()'會提取你想要的東西。對於更復雜的標記,相應地更改選擇器。 – David

回答

0

假設下面的HTML

<div>Random content can go <font size="50">here</font> with forn elements 
<font size="50">mixed into the text</font>, in random positions.</div> 

檢索文字如下

//first get all elements with the appropriate selector 
var $fontElements = $("font[size='50']"); 

//then access them one by one using .each(). $(this).text() gets the actual text 
$fontElements.each(function (index) { 
    var line = "element " + index + "=>" + $(this).text(); 
    $("#result1").append(line); 
    $("#result1").append($("<br>")); 
}); 

//using .text() right away will mix all the elements into one continous sting. 
$("#result2").text($fontElements.text()); 

以上輸出會給

對於RESULT1

element 0=>here 
element 1=>mixed into the text 

對於RESULT2

heremixed into the text 

這裏是一個工作示例http://jsfiddle.net/Df9h9/

+0

你忘記了文本(),這隻會返回html對象(字體)。 –

+0

當然,我忘了.text(),因爲這會返回所有選中的標籤,所以.text()可能是毫無意義的。 –

+0

您返回的對象包含更多關於字體標籤的iformation,並且他需要文本值。您的對象包含字體屬性(例如大小)等信息。所以text()根本不是毫無意義的。 –

0

不要使用正則表達式這的jsfiddle一個鏈接 - 它會是異端,一般一個壞主意。

您可以使用.text()代替:

alert($('<font size="50"> text example </font>').text()); 

如果元素在你的DOM,你可以使用選擇檢索它(注意,這將匹配這個屬性的所有字體元素):

alert($('font[size=50]').text()); 
+0

console.log(getText); $('font')。text(); console.log(getText); 我嘗試這個,但在兩種情況下,我得到了相同的輸出:文本

+0

你做錯了什麼。這必須工作。檢查它[這裏](http://jsfiddle.net/Wt6Xm/) –

0

你在找什麼叫做textContent。 此前,如果有人想要檢索標籤中的文本,那就是「innerText」。 有關textContent與innerText的正反面的討論,請閱讀上述文章。 的textContent是jQuery的.text()(sizzle.getText)使用,如果你看一下源代碼:

if (typeof elem.textContent === "string") { 
     return elem.textContent;