Это работает:
var.replace(/[^0-9]+/g, '');
Тот простой отрывок заменит что-либо, что не является числом ни с чем.
Но десятичные числа реальны также. Так, я пытаюсь выяснить, как включать период.
Я уверен, что это действительно просто, но мои тесты не работают.
Вы избежали точки? var.replace (/ [^ 0-9 \.] + / G, '');
Замена того, что не числом, немного сложнее, чем замена того, что является числом.
Те, кто предлагает просто добавить точку, игнорируют тот факт, что. также используется как точка, поэтому:
Это тест. 0,9, 1, 2, 3
станет .0,9123
.
Конкретное регулярное выражение в вашей задаче во многом зависит от цели. Если в вашей строке есть только одно число, вы можете сделать это:
var.replace (/.*? (([0-9] * \.)? [0-9] +). * / G , "$ 1")
Это находит первое число и заменяет всю строку совпадающим числом.
Как насчет этого:
var numbers = str.gsub(/[0-9]*\.?[0-9]+/, "#{0} ");
Попробуйте следующее:
var.replace(/[^0-9\\.]+/g, '');
Попробуйте следующее:
var.replace(/[0-9]*\.?[0-9]+/g, '');
Это соответствует только действительным десятичным числам (например, «1», «1.0» , ".5", но не "1.0.22")
Если вы не хотите ловить IP-адрес вместе с десятичными цифрами:
var.replace(/[^0-9]+\\.?[0-9]*/g, '');
Который будет ловить только цифры с одним или нулем периодов