2012-02-26 155 views
0

我有一個字符串,我試圖用空格替換標記內的所有& nbsp。 所有&在標籤之外應該不被替換,我基本上需要做的是檢查& nbsp字符串是否在前面有「< a」(沒有空格)。因爲如果我有字符串例如:替換字符串的特定部分

&nbsp<a&nbsphref="#"></a> 

那麼這應該變成:

&nbsp<a href="#"></a> 

有沒有一種方法來檢查& NBSP字符串是否具有「<一」之前,如果它取代它嗎? 我已經看過了javascript替換函數,我知道如何替換所有& nbsp字符串,但不僅僅是具有特定字符串的infront .. 希望這是有道理的,讓我知道你是否有任何想法,謝謝:)

+0

使用HTML解析器 – scibuff 2012-02-26 23:42:26

+1

而你爲什麼不修復產生這個混亂的代碼? – epascarello 2012-02-26 23:44:17

+0

問題是我正在div中顯示文本框的內容,所以我必須更改字符串中的空格,否則瀏覽器會將多個空格縮短爲一個空格。例如:「你好...論壇!」 (刪除點)將縮短爲「你好論壇!」。 – user1199434 2012-02-27 00:16:19

回答

0

如果您能夠控制字符串的內容,那麼您應該考慮包含Kolink描述的分號。

無論哪種方式,這也有問題(在這個例子中,我有分號):

var string = "&nbsp;<a&nbsp;href='#'></a>"; 
string.replace("<a&nbsp;","<a "); 

此查找字符串中的短語<a&nbsp;<a替換它。

+0

當然,很明顯..感謝Purmou的傑出和快速的答案! – user1199434 2012-02-26 23:44:54

+0

@ user1199434:實際上,它不會起作用。看我最近的編輯。 (如果我幫了忙,接受答案當然是有幫助的)。 – Purag 2012-02-26 23:58:47

+0

這確實工作得很好,我只是使用string.replace(「 user1199434 2012-02-27 00:12:08

0

該實體爲&nbsp;,末尾帶有分號。僅僅因爲瀏覽器不打擾分號,並不意味着它是可選的。這是必需的,否則實體會形成錯誤,而更嚴格的瀏覽器可能會拒絕它。

除此之外,您的問題解決起來非常簡單:將/<a&nbsp/g替換爲"<a "

+0

感謝您的提示,我添加了分號.. – user1199434 2012-02-27 00:20:01