Mam pole tekstowe, w którym musi pozostać tylko tekst lub liczba dziesiętna. Oto kod, którego obecnie używam, aby zastąpić wszystko oprócz liczb i przecinka dziesiętnego. Problem w tym, że nie mogę znaleźć wyrażenia regularnego, które identyfikowałoby wszystko inne
document.getElementById(target).value = newVal.replace(/\D[^\.]/g, "");
\ D działa dobrze, ale próbowałem (?!.), (?!\.), [^.], [^\.]
i tak dalej ...
Jakieś sugestie dotyczące wyrażenia regularnego, które pozytywnie identyfikuje się z czymkolwiek oprócz liczby lub ułamka dziesiętnego?
Dzięki za pomoc
javascript
regex
guildsbounty
źródło
źródło
Odpowiedzi:
Użyj tego:
źródło
parseFloat("46554.4655465.54654.545345.5") = 46554.4655465
Usunięcie tylko części dziesiętnej można wykonać w następujący sposób:
Spowoduje to przekonwertowanie 13,6667 pikseli na 13 pikseli (pozostawiając nietknięte jednostki px).
źródło
Spróbuj tego:
document.getElementById(target).value = newVal.replace(/^\d+(\.\d{0,2})?$/, "");
źródło
Sprawdź łącze Demo wyrażeń regularnych
użyj poniższego reg exp
[az] + [^ 0-9 \ s.] + |. (?! \ d)
źródło