簡體   English   中英

從asp.net服務器端到Javascript函數,一個傳遞字符串如何包含“ \\”?

[英]How does one pass string contains '\' from from asp.net server side to Javascript function?

從ASP.NET服務器端到javascript函數,一個傳遞字符串如何包含“ \\”?

在客戶端檢查完參數后,所有'\\'都替換為'',而在服務器端將'\\'替換為'%5C'無效。

任何想法?

\\是一個特殊字符-基本上它會在字符后“轉義”。 嘗試傳遞\\\\代替。 順便說一句-如果您使用的是C#,則可以在字符串前使用@字符,以避免需要將其作為雙斜杠傳遞,例如

string path = @"c:\documents\mydocuments";

我為此找到了解決方案。

parameter.Replace("\\\\", "\\\\\\\\")解決它。

您是否正在使用ASP.NET編寫JavaScript字符串文字? 即。 就像是:

Page.RegisterStartupScript("foo",
   "<script type='text/javascript'>"+
   "    var bar= '"+myBarValue+"';"+
   "</script>"
);

如果是這樣,那么您要將文本嵌入到帶分隔符的JavaScript字符串文字中,並且必須使用遵循字符串文字語法的轉義方案。 特別是文本中的任何\\字符都必須用\\\\進行轉義,並且任何'字符都必須用\\'替換,因為在這種情況下,這就是使用的分隔符(JavaScript可以使用兩種引號來分隔字符串)。

而且,如果像上面的示例一樣使用內聯<script>塊,實際上是將文本嵌入到字符串常量中的HTML元素中,因此也必須進行一些HTML轉義。 特別是,您必須分解文本中的任何</序列,因為那樣會結束腳本塊。 另外,在XHTML中,沒有CDATA元素,因此,您還必須對文本中的任何<&字符進行&符號轉義,除非這將使其與舊版HTML解析器不兼容。 因此,要解決所有這些問題,最好也使用JavaScript字符串文字轉義符,將<替換為\\x3C並將&替換為\\x26

理想情況下,您將要做的就是將簡單字符串傳遞給JSON編碼器庫,該庫將負責將其適當地轉義為JavaScript。 但是,我不知道一個.NET會像上面那樣為您轉義HTML,因此您仍然需要一些替換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM