我相信这个必须先被问过,但在搜索中找不到任何东西。 确保从字符串中删除所有非安全字符的最快方法是什么?它允许在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