2017-06-09 111 views
1

嗨,大家好,這對我來說是一個愚蠢但又重要的小問題。用'替換單引號'

我有一個jQuery,拿起有點單引號的字符串,並導致根本沒有采摘它們。即

data-name='someone's name'; 

jQuery的拾取代碼

$('#id').text($(this).data("name")); 

我的猜測是jQuery的封閉是''""所以someone's name'被關閉,因此這導致someone

所以我試圖做以下事情 -

string name = "someone's name"; 

//Attempted replace here 
<div data-name='<%# Eval("name").ToString().Replace("'","\'") %>'></div> 

但我得到Parser Error Message: The server tag is not well formed.

我在做什麼錯?

+1

一般使用雙引號'dataname =「xxx」'。要處理可能包含引號的字符串,您需要將其編碼爲HTML實體('HttpUtility.HtmlAttributeEncode()') –

+0

您需要這個或類似的東西:'Server.HTMLEncode Method' https://msdn.microsoft.com/ en-us/library/ms525347(v = vs.90).aspx –

+0

@AlexK。而已!請發佈它作爲答案 – envyM6

回答

2

中平凡使用雙引號data-name="someone's name"

爲了解決這個問題可能包含報價,你需要編碼爲HTML實體字符串:

HttpUtility.HtmlAttributeEncode("someone's name")產生someone&#39;s name

(您需要使用外"作爲報價爲此正常工作)