2012-02-26 159 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