Jestem pewien, że to musiało zostać zadane wcześniej, ale nie może znaleźć żadnych w wyszukiwaniu. Jaki jest najszybszy sposób na usunięcie wszystkich niechronionych znaków z ciągu znaków, aby można było użyć ich w nazwie klasy CSS?Konwertuję ciąg znaków javascript na bezpieczną nazwę klasy dla css
Odpowiedz
Zamieniłbym wszystko, co nie jest małą literą lub cyfrą, a następnie dodałbym specjalny przedrostek, aby uniknąć kolizji z nazwami klas, które zostały użyte do innych celów. Na przykład, oto jeden z możliwych sposobów:
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"));
Jeśli masz na myśli następujące symbole
!"#$%&'()*+,./:;<=>[email protected][\]^`{|}~
potem po prostu wymienić je z niczym:
names = names.replace(/[!\"#$%&'\(\)\*\+,\.\/:;<=>\?\@\[\\\]\^`\{\|\}~]/g, '');
(może Dodałem dodatkowe, czy też nie na tyle, ucieczka znaki tam)
Oto quick demo.
Ale jeśli wiesz, że nie wszystkie z tych symboli są "niebezpieczne", możesz po prostu uciec od symbolu podczas kierowania na nazwę klasy (ref).
Nie spowoduje to przechwycenia znaków międzynarodowych (np. À, è, ì, ò, ù, À, È, Ì, Ò , Ù). – NexusRex
@NexusRex te są poprawne do użycia w nazwach klas. W rzeczywistości [właściwie wszystko jest poprawne] (https://mathiasbynens.be/notes/css-escapes), jeśli poprawnie się udało; to teraz [zawiera id w HTML5] (https://mathiasbynens.be/notes/html5-id-class). [Zobacz także tę stronę] (https://mothereff.in/css-escapes). – Mottie
Można spróbować urlify.js
z Django.
Pobierz go z: https://github.com/django/django/blob/master/django/contrib/admin/static/admin/js/urlify.js
Jeśli ktoś jest zainteresowany w sposób kawy to:
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
Używam tego dla moich selektory, identyfikatory lub klas nazwami:
String.prototype.safeCSSId = function() {
return encodeURIComponent(
this.toLowerCase()
).replace(/%[0-9A-F]{2}/gi,'');
}
z jQuery:
$.escapeSelector(stringToEscape);
- 1. Konwertuj ciąg znaków ("MyExampleClass") na nazwę klasy (MyExampleClass)
- 2. Uzyskaj nazwę klasy jako ciąg znaków w języku C#
- 3. Konwertuj ciąg znaków javascript na tablicę php
- 4. Jak przekonwertować ciąg znaków na prawidłową nazwę zmiennej w python?
- 5. Jak przekonwertować ciąg znaków na nazwę atrybutu obiektu?
- 6. Konwertowanie znaków Unicode na ciąg znaków
- 7. Stały ciąg znaków C++ (element klasy)
- 8. Zastąp nazwę klasy dla XmlSerialization
- 9. Jak analizować ciąg znaków w JavaScript?
- 10. Konwertuj nazwę zestawu znaków na NSStringEncoding
- 11. ciąg :: kasowanie (0) na pusty ciąg znaków?
- 12. Jak przekonwertować ciąg znaków na wykonywalny wiersz kodu w JavaScript?
- 13. Jak przekonwertować ciąg znaków z nazwą klasy na sam typ klasy?
- 14. Uzyskaj nazwę klasy django modelu
- 15. Przekształć tablicę znaków na ciąg znaków
- 16. Jak wykluczyć określoną nazwę klasy w selektorze CSS?
- 17. Podziel ciąg znaków za pomocą javascript
- 18. javascript [object Object] na ciąg
- 19. jQuery $(). Css ("content") zwracająca ciąg znaków "normal" w IE9
- 20. jak przekonwertować ciąg znaków na uniksowy znacznik czasu w javascript?
- 21. Jak zapętlić czek na ciąg znaków w dokumencie w JavaScript?
- 22. Flex: dany obiekt klasy, uzyskaj nazwę klasy, którą reprezentuje
- 23. R, podzielony ciąg znaków na pary znaków
- 24. Konwertuj ciąg znaków RTF na ciąg XAML
- 25. Javascript - zwróć ciąg znaków między nawiasami kwadratowymi
- 26. Prześlij ciąg znaków przez odniesienie w JavaScript
- 27. Podział ciągu na ciąg znaków
- 28. dlaczego javascript this.style [property] zwraca pusty ciąg znaków?
- 29. Sprostowanie JavaScript dla znaków alfabetu i spacji?
- 30. Konwertuj ciąg znaków na PAnsiChar w Delphi 2009
najszybciej? 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