我相信這個必須先被問過,但在搜索中找不到任何東西。 確保從字符串中刪除所有非安全字符的最快方法是什麼?它允許在CSS類名中使用它?javascript將字符串轉換爲css的安全類名稱
16
A
回答
30
我會替換不是小寫字母或數字的任何東西,然後我會添加一個特殊的前綴以避免與您用於其他目的的類名衝突。例如,這裏是一個可能的方式:
function makeSafeForCSS(name) {
return name.replace(/[^a-z0-9]/g, function(s) {
var c = s.charCodeAt(0);
if (c == 32) return '-';
if (c >= 65 && c <= 90) return '_' + s.toLowerCase();
return '__' + ('000' + c.toString(16)).slice(-4);
});
}
// shows "prefix_c_a_p_s-numb3rs-__0024ymbols"
alert("prefix" + makeSafeForCSS("CAPS numb3rs $ymbols"));
10
如果你指的是以下符號
!"#$%&'()*+,./:;<=>[email protected][\]^`{|}~
然後就什麼也沒有取代他們:
names = names.replace(/[!\"#$%&'\(\)\*\+,\.\/:;<=>\?\@\[\\\]\^`\{\|\}~]/g, '');
(我可以額外增加了,還是不夠,在那裏轉義字符)
這裏是quick demo。
但是,只要您知道,並非所有這些符號都是「不安全」的,您只需定位類名(ref)就可以跳過該符號。
1
你可以嘗試從Django中的urlify.js
。
獲取它: https://github.com/django/django/blob/master/django/contrib/admin/static/admin/js/urlify.js
0
如果有人有興趣的這種咖啡的方法:
window.make_safe_for_css = (name) ->
name.replace /[^a-z0-9]/g, (s) ->
c = s.charCodeAt(0)
if c == 32 then return '-'
if c >= 65 && c <= 90 then return '_' + s.toLowerCase()
'__' + '000' + c.toString(16).slice -4
2
我用這對我的選擇,ID或類名稱:
String.prototype.safeCSSId = function() {
return encodeURIComponent(
this.toLowerCase()
).replace(/%[0-9A-F]{2}/gi,'');
}
0
with jQuery:
$.escapeSelector(stringToEscape);
相關問題
- 1. 將字符串轉換爲類的安全名稱
- 2. 將字符串轉換爲類名稱
- 3. 將字符串轉換爲Javascript安全且友好的變量名稱
- 4. 將StringBuilder轉換爲安全字符串
- 5. 安全的CSS類名稱的帶字符串?
- 6. 將字符串轉換爲JavaScript中的數組名稱
- 7. 將字符串轉換爲JavaScript中的變量名稱
- 8. 將字符串名稱轉換爲對象的名稱
- 9. 將字符串轉換爲變量名稱。 (JavaScript)
- 10. 如何將類型名稱轉換爲字符串?
- 11. 將字符串值轉換爲Java類名稱
- 12. 將字符串(「MyExampleClass」)轉換爲類名稱(MyExampleClass)
- 13. 字符串轉換爲點名稱
- 14. 工具字符串轉換爲XML安全的字符串
- 15. 將字節轉換爲UTF8編碼的字符串安全嗎?
- 16. 將JavaScript符號轉換爲字符串?
- 17. 將字符集名稱轉換爲NSStringEncoding
- 18. 將字符串轉換爲數字Javascript
- 19. JavaScript將$字符串轉換爲數字
- 20. Java將字節轉換爲二進制安全字符串
- 21. 將字符串轉換爲JavaScript的
- 22. 安全unicode字符串/名稱
- 23. 如何安全地東西轉換爲字符串在JavaScript
- 24. 將字符類型轉換爲整數類型是否安全
- 25. 將字符串轉換爲整數安全的方式
- 26. Java中的密碼安全性 - 將char []轉換爲字符串
- 27. 將類字符串轉換爲類
- 28. 將字符串文字轉換爲變量名稱
- 29. 將字符串轉換爲字段名稱
- 30. NSURL不轉換安全的字符串
最快? https://mothereff.in/css-escapes#0~!%40%24%25%5E%26%2a%28%29%5f%2B-%3D%2C.%2F%27%3B%3A% 22%3F%3E%3C%5B%5D%5C%7B%7D%7C%60%23 – Mottie