2
我拼命地試圖在Smalltalk中編寫一個非常基本的方法來轉義HTML標籤('<'和'>')。在Smalltalk中轉義HTML標籤字符串
到目前爲止,這是我想出了:
escapeHtml: str
|tags newString tmpString|
newString := String new.
tags := Dictionary new.
tags at: '<' put: '<'.
tags at: '>' put: '>'.
tags keysAndValuesDo:
[ :k :v |
tmpString := str copyReplaceAll: k with: v.
newString := tmpString
].
^newString
!
不幸的是,它似乎只更換tags
字典的最後一個項目。我究竟做錯了什麼?我也許應該指出,我對Smalltalk的經驗很少。
選擇的解釋器是'syx'。
我不好意思我不知道遲早我是複製相同的字符串所有的地方。謝謝!它確實現在工作。 :-) –
@المستخدمغيرموجود我也加了一個關於算法的建議給答案,也許你會喜歡它的) – Uko
我很感激,但不幸的是syx似乎沒有一個就地replaceAll的定義('#String:replaceAll:with:'),所以我必須堅持舊代碼(但是,我擺脫了superfluent'tmpString'變量)。再一次,我很欣賞它,但syx只是缺乏適當的方法。 –