\D
будет соответствовать любому символу, который не является цифрой.
Если вы также не хотите сопоставлять точку, вы можете использовать отрицательный класс символов [^\d.]+
, который будет соответствовать любому символу, кроме точки или цифры.
Поскольку вы заменяете его пустой строкой, вы можете повторить класс символов 1+ раз.
Используйте глобальный флаг /g
, чтобы заменить все вхождения.
this.value = this.value.replace(/[^\d.]+/g, "");