2014-09-01 116 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