2014-09-01 36 views
0

我将一个动态html字符串插入到来自SQL服务器的HTML标记中。如何从SQL Server中的字符串替换特殊字符'<'?

当HTML字符串包含'<'字符时,它在前面的UI中效果不佳。

我供你参考 http://jsfiddle.net/Loxr10nn/

我想替换从HTML字符串'<'字符创建小提琴。如果发现完全匹配的字符为< ANY WORD without space,否则照原样。

如果字符“STEP ONE DIET <THAN 200 MG CHOL/DAY INCREASE EXERCISE”,那么它将解析有问题。 否则"< THAN"那么它会正常工作。

当插入该字符串MS SQL服务器的话,我想替换<THAN< THAN如果发现任何这种类型的词,那么它应该被替换。我想这样做在SQL服务器程序..

+0

检查这个http://jsfiddle.net/abhishekbhalani/6cew0do3/1/ – 2014-09-01 11:37:16

+0

htmlentities()? http://php.net/manual/en/function.htmlentities.php – RST 2014-09-01 11:38:14

+0

@RST没有PHP代码将为我工作。我正在寻找MSSQL服务器..使用C#MSSqlsever工作 – 2014-09-01 11:43:14

回答

0

我找到了解决办法。我欣赏@Steoleary代码也

DECLARE @Notes varchar(max) 
SET @Notes = 'STEP ONE DIET <THAN 200 MG CHOL/DAY INCREASE EXERCISE, Test < Single space before and after presever spacing' 
SELECT @Notes AS BEFORE, REPLACE(REPLACE(CAST(@Notes AS VARCHAR(MAX)),'<', '< '), '< ','< ') AS AFTER 

--BEFORE 
STEP ONE DIET <THAN 200 MG CHOL/DAY INCREASE EXERCISE, Test < Single space before and after presever spacing 
--AFTER (Spacing around '<' is preserved) 
STEP ONE DIET < THAN 200 MG CHOL/DAY INCREASE EXERCISE, Test < Single space before and after presever spacing 
1

所以取决于你想要在C#或SQL服务器上执行此操作的位置,一般在应用程序中执行此操作,然后将其存储在已经格式化的SQL服务器中是最好的)可以这样做:

C#:

string original = "STEP ONE DIET <THAN 200 MG CHOL/DAY INCREASE EXERCISE"; 
string replaced = original.Replace(@"<", "< "); 

然后插入替换成你的数据库,而不是原来的字符串串

SQL服务器:

你可以做到这一点无论写您的字符串到数据库或每次时,当您检索它:

REPLACE('STEP ONE DIET <THAN 200 MG CHOL/DAY INCREASE EXERCISE','<','< ') 
+0

我设置文本为textarea,所以它将显示<在textarea所以这对我来说毫无价值。如果我在'<'和THAN之间加上空格,那么它就可以工作。''THAN'应该用' 2014-09-02 05:55:05

+0

然后你需要做的就是修改我的答案中的代码并改变“<”改为“<”以获得您想要的结果。 – steoleary 2014-09-02 05:56:51

+0

现在编辑了答案,这有帮助吗? – steoleary 2014-09-02 09:06:16