Regex заменить все, кроме чисел и десятичной точки

У меня есть текстовое поле, которое должно оставаться только текстовым или десятичным. Вот код, который я использую в настоящее время для замены всего, кроме чисел и десятичной точки. Проблема в том, что я не могу найти регулярное выражение, которое будет идентифицировать все остальное

document.getElementById(target).value = newVal.replace(/\D[^\.]/g, "");

The\D отлично работает, но я пробовал (?!.), (?!\.), [^.], [^\.] и так далее...

Любые предложения для регулярного выражения, которые позитивно идентифицируют что-либо, кроме числа или десятичного числа?

Спасибо за помощь

Ответ 1

Используйте это:

document.getElementById(target).value = newVal.replace(/[^0-9.]/g, "");

Ответ 2

Удаление только десятичной части может быть выполнено следующим образом:

number.replace(/(\.\d+)+/,'');

Это преобразует 13.6667px в 13px (оставив единицы px нетронутыми).

Ответ 3

Попробуйте следующее:

document.getElementById(target).value = newVal.replace(/^\d+(\.\d{0,2})?$/, "");