2016-05-16 34 views
0

我支持一些現有的代碼,其中原作者使用StringEscapeUtils逃跑的JavaScript像這樣一個列表的內容...爲什麼Groovy的StringEscapeUtils會混淆正斜槓以及如何處理它?

def myList = ["Easy Installation", "Good Price/Value", "Attractive Design"] 
myList = myList.collect { StringEscapeUtils.escapeJavaScript(it) } 
println("Result is ${myList.join(',')}") 

當然什麼是打印出來是..

Result is Easy Installation,Good Price \/ Value,Attractive Design 

第一個問題是爲什麼它試圖逃避正斜槓?根據這個post,在JavaScript中正斜槓是無害的(我也假設HTML)。

第二個問題,可以做任何事情嗎(當然不是逃避),所以正斜線不會顯示爲「V」?

+0

爲什麼要投票? – AbuMariam

回答

0

StringEscapeUtils是逃避你的斜槓,因爲它是專爲逃避JSON字符串和逃避正斜槓爲an option in JSON


爲什麼StringEscapeUtils.escapeJavaScript()被稱爲它不是從您的代碼段清楚。但是你可以縮短代碼爲:

def myList = ["Easy Installation", "Good Price/Value", "Attractive Design"] 
myList = myList.collect StringEscapeUtils.&escapeJavaScript 
println("Result is ${myList.join(',')}") 
+0

有沒有什麼辦法可以關閉StringEscapeUtils? – AbuMariam

+0

爲什麼你首先「逃避」字符串?如果您發現我的答案有幫助,請點贊。 – Armand

+0

我不知道爲什麼,因爲我說了別人的代碼,並且我不想刪除它,因爲害怕破壞別的東西(也許它用於除了正斜槓之外的其他內容)。如果能幫助我的第二個問題,我很樂意接受你的回答。該怎麼辦?如何保持該代碼,但仍阻止用戶看到「V」? – AbuMariam

相關問題