2011-05-12 22 views
1


這是我的代碼:jQuery的正則表達式:替代<br/>

$(".tooltip").live('click', function() { 
    var texte = $('#tiptip_content').text(); 
    $('#subheader').html(texte); 
}); 

var texte包含一些texte與<br/>標籤和標籤<b></b>
我想將這段文字添加到#subheader,但用<br/>更改爲「雙倍空間」並刪除<b></b>標記。

我該怎麼做?

回答

2

至於非正則表達式的解決方案。

由於.text()剔除了任何<elements/>可以使用.replaceWith()改變你<br/>&nbsp;&nbsp;

var d = $('#tiptip_content').clone(); 
var texte = d.find("br").replaceWith("&nbsp;&nbsp;").end().text(); 
$('#subheader').html(texte); 

Example on jsfiddle

+0

可能是該元素包含一個字符串,其中提到的標記名被編碼。然後正則表達式應該工作。但是你是對的,text()函數應該已經剝離了默認的元素 – Raybiez 2011-05-12 12:52:54

2
texte.replace(/<b><\/b>/gi, ''); 
texte.replace(/<br\/>/gi, ' '); 
texte.replace(/searchRegex/gi, 'replace'); 

http://www.w3schools.com/jsref/jsref_replace.asp

的 'GI' 的全稱是 「全球性」(即每更換一個)和 「不區分大小寫」。 請注意/字符的轉義。

+0

不起作用,
標籤仍然存在。當然是爲了Jquery? – eouti 2011-05-12 12:45:35

+0

它是Javascript。確定
沒有空格(即
)? – 2011-05-12 14:09:39

+0

您可以使用正則表達式捕獲兩者:.replace// – 2011-05-12 14:11:42

1

你可以使用以下方法來從字符串中刪除所有的HTML標籤:

texte.replace(/<\/?[^>]+>/gi, '');