如何替换特殊字符'<'来自SQL Server中的字符串?

时间:2014-09-01 11:35:36

标签: html replace sql-server-2008-r2 special-characters

我正在从SQL服务器向HTML中的标记插入动态html字符串。

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

我为你的参考创作了小提琴 http://jsfiddle.net/Loxr10nn/

我想从HTML字符串中替换'<'个字符。如果找到完全匹配的字符< ANY WORD without space,则按原样使用。

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

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

2 个答案:

答案 0 :(得分:1)

因此,根据您要执行此操作的位置,无论是在C#中还是在SQL服务器本身上,通常在应用程序中执行此操作,然后将其存储在已经格式化的SQL服务器中是最好的)您可以这样做:

C#:

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

然后将替换的字符串插入数据库而不是原始字符串

SQL Server:

您可以在将字符串写入数据库时​​或每次检索字符串时执行此操作:

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

答案 1 :(得分: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