регулярное выражение для замены всего, что не является числом или точкой в ​​строке

Я пытаюсь написать регулярное выражение, которое заменяет все, что не является цифрой или . в строке.

Например:

const string = 'I am a 1a.23.s12h31 dog'`
const result = string.replace(/[09.-]/g, '');
// result should be `1.23.1231`

Может ли кто-нибудь увидеть, что я делаю неправильно здесь.


person peter flanagan    schedule 27.02.2019    source источник
comment
.replace(/[^0-9.]+/g, '')? См. regex101.com/r/WiQ8as/1.   -  person Wiktor Stribiżew    schedule 27.02.2019


Ответы (1)


Вы можете изменить регулярное выражение на [^0-9.]+:

const result = string.replace(/[^0-9.]+/g, "");

В качестве альтернативы, если вам не нужно регулярное выражение, используйте split и filter, затем join:

const result = string.split("").filter(s => isNaN(s) || s == ".").join("");
person Jack Bashford    schedule 27.02.2019