Potrzebuję wyrażenia regularnego w javascript, które będzie akceptowało tylko liczby dodatnie i dziesiętne. To jest to, co mam, ale coś jest nie tak - nie wydaje się, aby przyjmowało pojedyncze pozytywne cyfry. Na przykład 9
nie będzie działać. Jak mogę to zrestrukturyzować, więc jeśli istnieje co najmniej jedna cyfra dodatnia, będzie działać?Wyrażenie regularne do akceptowania tylko liczb dodatnich i liczb dziesiętnych
Odpowiedz
/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)$/
mecze
0
+0
1.
1.5
.5
ale nie
.
1..5
1.2.3
-1
EDIT:
Aby obsłużyć notacji naukowej (1e6
), może chcesz zrobić
/^[+]?([0-9]+(?:[\.][0-9]*)?|\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/
Jeśli chcesz numerów ściśle pozytywne, nie zero, można zrobić
/^[+]?([1-9][0-9]*(?:[\.][0-9]*)?|0*\.0*[1-9][0-9]*)(?:[eE][+-][0-9]+)?$/
Tak, ten jest całkiem niezły .. Nie może znaleźć żadnych problemów. –
@MikeChristensen, to nie obsługuje notacji naukowej, ale możesz uderzyć opcjonalne '[eE] [+ -]? [0-9] +' przed '$', aby sobie z tym poradzić. –
Istnieje kilka różnych sposobów, aby to zrobić w zależności od potrzeb:
/^[0-9.]+$/
meczów 1
i 1.1
ale nie -1
/^[0-9]+\.[0-9]+$/
mecze 1.1
ale nie 1
lub -1
Generalnie polecam korzystania prosty przewodnik do wyrażenia regularnego, taki jak http://www.regular-expressions.info/ dla budowania wyrażeń, a następnie przetestuj je za pomocą java skrypt prawo konsola przeglądarka:
"123.45".match(/^[0-9.]+$/)
To również będzie zawierać "..." i tak dalej. – NT3RP
To prawda - wydawało się, że pytanie było szersze, zanim zostało zmienione. –
Jak o jak:
^[.]?[0-9]+[.]?[0-9]*$
Czy to też nie pasuje do rzeczy takich jak '.0.0'? – NT3RP
Tak, to jest jeden problem .. Myślę, że użycie "lub" jest najlepszym wyborem .. –
Można spróbować to -
^\d{0,10}(\.\d{0,2})?$
Również jedna fajna strona do przetestowania, a także opis własnych wyrażeń regularnych. https://regex101.com/
- 1. wyrażenie regularne do wyszukiwania liczb dziesiętnych/liczb zmiennoprzecinkowych?
- 2. Wyrażenie regularne dla liczb arabskich
- 3. Jawne wyrażenie regularne dla liczb ujemnych?
- 4. Sprawdzanie poprawności liczb dziesiętnych
- 5. wyświetlania liczb dziesiętnych
- 6. Wyświetlanie liczb bez kropek dziesiętnych
- 7. Obsługa liczb dziesiętnych w mysqli
- 8. Wyrażenie regularne pasujące do nieujemnych liczb całkowitych w PHP?
- 9. Wyodrębnianie liczb dziesiętnych z łańcucha
- 10. Jak znormalizować listę liczb dodatnich w JavaScript?
- 11. Przecinanie przecinków od liczb całkowitych lub liczb dziesiętnych w szynach
- 12. sposób generowania liczb dodatnich i ujemnych w Javie
- 13. C# - Wymuś String.Format do używania liczb dziesiętnych i NIGDY przecinek
- 14. obliczyć (skomplikowaną) tablicę liczb dziesiętnych w C#
- 15. Regularne wyrażenie dodatnie i ujemne wartości dziesiętnych w Javie
- 16. Zaokrąglanie liczb do n miejsc dziesiętnych w clojure
- 17. SQL SELECT, aby uzyskać pierwsze N liczb całkowitych dodatnich
- 18. Regex aby umożliwić liczb i tylko jeden łącznik w środku
- 19. Sprawdzanie poprawności dla liczb całkowitych nieujemnych i wartości dziesiętnych
- 20. Wyrażenie regularne pasujące tylko do liter
- 21. wyrażenie regularne do dodawania znaków przed i po numerach
- 22. Jak ograniczyć PrimFaces inputMask tylko do liczb?
- 23. Konwersja ciąg liczb do tablicy liczb
- 24. wyrażenie regularne, aby umożliwić tylko cyfry w przedziale 1-20
- 25. Zaokrąglanie liczb do określonych wielokrotności
- 26. Jak utworzyć zakres losowych liczb dziesiętnych między 0 a 1
- 27. nie można dodać dwóch liczb dziesiętnych za pomocą jQuery
- 28. MVC Validation uczynić wyrażenie regularne numeryczny tylko na polu Parametry
- 29. Zaokrąglanie liczb dziesiętnych w zagnieżdżonych strukturach danych w języku Python
- 30. Konwersja liczb dziesiętnych na sixagesimal (podstawa sześćdziesięciu) w javascript
Ponieważ każda klasa [0-9] zawiera znak +, cyfry bez znaków dziesiętnych muszą mieć co najmniej dwie cyfry. –