Czy można formatować liczby za pomocą CSS? Czyli: miejsc po przecinku, separator dziesiętny, separator tysięcy, itpFormatowanie liczb (miejsca dziesiętne, separatory tysięcy itp.) Za pomocą CSS
Odpowiedz
Cóż, dla wszelkich liczb w JavaScript Używam następny:
var a = "1222333444555666777888999";
a = a.replace(new RegExp("^(\\d{" + (a.length%3?a.length%3:0) + "})(\\d{3})", "g"), "$1 $2").replace(/(\d{3})+?/gi, "$1 ").trim();
i jeśli trzeba używać innych jako separator przecinek na przykład:
var sep = ",";
a = a.replace(/\s/g, sep);
lub jako funkcja:
function numberFormat(_number, _sep) {
_number = typeof _number != "undefined" && _number > 0 ? _number : "";
_number = _number.replace(new RegExp("^(\\d{" + (_number.length%3? _number.length%3:0) + "})(\\d{3})", "g"), "$1 $2").replace(/(\d{3})+?/gi, "$1 ").trim();
if(typeof _sep != "undefined" && _sep != " ") {
_number = _number.replace(/\s/g, _sep);
}
return _number;
}
Dzięki. Nie jest to czyste rozwiązanie CSS, ale spełnia zadanie! – Don
Podoba mi się. Ale musiałem również przekonwertować liczbę na ciąg przed zamianą. Nie możesz wykonać zamiany na numerze. – Mardok
przed wywołaniem '_number.replace' musimy upewnić się, że jest to ciąg taki jak ten ' _number = typeof _number! = "Undefined" && _number> 0? String (_number): ""; "albo otrzymasz komunikat o błędzie" _number.replace "nie jest zdefiniowany lub nie jest funkcją – Shalkam
Nie, trzeba użyć javascript raz to w DOM lub sformatować go poprzez swój język po stronie serwera (PHP/Ruby/Python etc.)
Format liczb jest kwestią treści, podobnie jak treść treści lub inne kwestie notacyjne (np. Notacje daty, zależne od języka). Więc formatowanie liczb jest lokalizacją i powinno być obsługiwane podczas generowania treści. Robienie tego w JavaScript ma sens dla części treści generowanej przez JavaScript. –
W pełni się z tym zgadzam. Dlatego napisałem to w mojej odpowiedzi. Powinienem prawdopodobnie położyć na to większy nacisk. – mreq
Może to być treść lub prezentacja. Weź CSS 'rtl', który pokazuje tę samą treść w inny sposób: czy powinien być również traktowany po stronie serwera? – Don
Nie można użyć CSS do tego celu. Polecam korzystanie z JavaScript, jeśli jest to możliwe. Proszę spojrzeć na to, aby uzyskać więcej informacji: JavaScript equivalent to printf/string.format
Również As Petr wspomniał, że poradzisz sobie z tym po stronie serwera, ale to całkowicie zależy od twojego scenariusza.
Nie sądzę, że możesz. Możesz użyć number_format(), jeśli kodujesz w PHP. Inne języki programowania mają również funkcję formatowania liczb.
Grupa robocza ds. CSS opublikowała projekt w wersji Content Formatting w roku 2008. Ale teraz nic nowego.
Prawdopodobnie najlepszym sposobem na to jest combo ustawienia rozpiętość z klasą oznaczający formatowanie następnie użyć jQuery .each zrobić formatowanie na przęseł gdy DOM jest ładowane ...
nie odpowiedź, ale perpopy zainteresowania. Wysłałem a proposal to the CSS WG kilka lat temu. Jednak nic się nie stało. Jeśli rzeczywiście (i dostawcy przeglądarek) postrzegaliby to jako prawdziwy problem deweloperski, być może piłka mogłaby zacząć się kręcić?
Dzięki za przyczynienie się. Mam nadzieję, że pewnego dnia się uda. – adjenks
Jeśli to pomaga ...
korzystać z funkcji PHP number_format()
i Narrow No-break Space ( 
). Jest często używany jako jednoznaczny separator tysięcy.
echo number_format(200000, 0, "", " ");
Bo IE8 ma pewne problemy, aby uczynić Narrow No-przerwa przestrzeń, zmieniłem go na SPAN
echo "<span class='number'>".number_format(200000, 0, "", "<span></span>")."</span>";
.number SPAN{
padding: 0 1px;
}
Niestety jest to po stronie serwera, istnieje niewielkie uderzenie procesora, potrzebujemy maski edycji html/css. Dressing i rendering powinny być stroną klienta, chyba że serwujemy plik pdf? – mckenzm
można użyć JSTL biblioteki znaczników do formatowania stron JSP
JSP Page
//import the jstl lib
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
<c:set var="balance" value="120000.2309" />
<p>Formatted Number (1): <fmt:formatNumber value="${balance}"
type="currency"/></p>
<p>Formatted Number (2): <fmt:formatNumber type="number"
maxIntegerDigits="3" value="${balance}" /></p>
<p>Formatted Number (3): <fmt:formatNumber type="number"
maxFractionDigits="3" value="${balance}" /></p>
<p>Formatted Number (4): <fmt:formatNumber type="number"
groupingUsed="false" value="${balance}" /></p>
<p>Formatted Number (5): <fmt:formatNumber type="percent"
maxIntegerDigits="3" value="${balance}" /></p>
<p>Formatted Number (6): <fmt:formatNumber type="percent"
minFractionDigits="10" value="${balance}" /></p>
<p>Formatted Number (7): <fmt:formatNumber type="percent"
maxIntegerDigits="3" value="${balance}" /></p>
<p>Formatted Number (8): <fmt:formatNumber type="number"
pattern="###.###E0" value="${balance}" /></p>
Wynik
sformatowany numer (1): 120,000.23 £
Sformatowana liczba (2): 000.231
Sformatowana liczba (3): 120,000.231
Sformatowana liczba (4): 120000.231
sformatowany numer (5): 023%
sformatowany numer (6): 12,000,023.0900000000%
sformatowany numer (7): 023%
sformatowany numer (8): 120E3
- 1. Formatowanie liczb za pomocą separatora tysięcy Smarty PHP
- 2. Dwa miejsca dziesiętne za pomocą C#
- 3. Formatowanie dużych liczb za pomocą .NET
- 4. Zastępuje separatory tysięcy w CSV z regex
- 5. Separatory ListView za pomocą CursorAdaptera
- 6. Formatowanie liczb jako ciągi przecinkami w miejsca po przecinku
- 7. Wydrukuj maks. 4 miejsca dziesiętne
- 8. Formatowanie SSN za pomocą String.format
- 9. Kątowa: Formatowanie liczb przecinkami
- 10. OmniAuth + Pulling Tweets, Miejsca FB, itp.
- 11. posiekaj nieużywane miejsca dziesiętne z javascript
- 12. Zdobądź ostatnie 2 miejsca dziesiętne bez zaokrąglania
- 13. Jak obcinać miejsca dziesiętne do x miejsc w Swift
- 14. Formatowanie liczby przecinkami, ale zachowaj wartości dziesiętne
- 15. Jak ustawić separatory dziesiętne w kontrolerach ASP.NET MVC?
- 16. Formatowanie liczb (pisownia) z icu4j
- 17. Formatowanie warunkowe za pomocą VBA
- 18. Jak sprawdzić ciąg zawiera tylko cyfry i miejsca dziesiętne?
- 19. Symbol waluty niestandardowej i miejsca dziesiętne za pomocą decimal.ToString ("C") i CultureInfo
- 20. Wprowadzanie danych w formacie html zawsze wyświetla 2 miejsca dziesiętne
- 21. Formatowanie liczb z przecinkami w D3
- 22. Formatowanie liczb na osi ciągłej w ggplot
- 23. Rozpoznawanie liczb za pomocą gestów
- 24. Wyszukiwanie liczb za pomocą Zend_Search_Lucene
- 25. Automatyczne formatowanie liczb w arkuszach kalkulacyjnych w trybie org.
- 26. Jak ustawić ustawienia regionalne cout, aby wstawiać przecinki jako separatory tysięcy?
- 27. Formatowanie wyjścia latex (to_latex)
- 28. Jak można zmodyfikować dwa dopasowane separatory jednocześnie za pomocą Emacsa?
- 29. nie można dodać dwóch liczb dziesiętnych za pomocą jQuery
- 30. Tworzenie tysięcy adresów URL za pomocą mod-przepisać
Nie możesz, ale naprawdę powinieneś być w stanie. W końcu 50 000 lub 50000 lub 50 000,00 to te same "dane", które po prostu przedstawiono inaczej, do czego służy CSS. – MrMisterMan
@MrMisterMan: Jest tu kilka pomysłów: http://wiki.csswg.org/ideas/content-formatting#numbers Prawdopodobnie będę nękany i oskarżony o cytowanie "specyfikacji" i wzbudzanie nadziei chociaż. I dla mnie jestem ciekawy, jak traktować tutaj tekst nieliczbowy. – BoltClock
Chociaż zgadzam się, że byłoby to miłe mieć, numer jest osadzony na stronie w innym miejscu. Oznacza to, że reszta strony to angielski, chiński lub jakikolwiek inny język, a liczby powinny odpowiadać IMO tej lokalizacji. Dlaczego powinny być zlokalizowane oddzielnie od reszty strony ...? – deceze