Ответ 1
Используйте строку .replace
метод с регулярным выражением \D
, который является сокращенным символьным классом, который соответствует всем не-цифрам:
myString = myString.replace(/\D/g,'');
Рассмотрим сценарий без DOM, в котором вы хотите удалить все нечисловые символы из строки, используя JavaScript/ECMAScript. Любые символы в диапазоне от 0 - 9
должны быть сохранены.
var myString = 'abc123.8<blah>';
//desired output is 1238
Как бы вы достигли этого простым JavaScript? Пожалуйста, помните, что это сценарий не DOM, поэтому jQuery и другие решения, включающие события браузера и нажатия клавиш, не подходят.
Используйте строку .replace
метод с регулярным выражением \D
, который является сокращенным символьным классом, который соответствует всем не-цифрам:
myString = myString.replace(/\D/g,'');
Если вам нужно это оставить точку для чисел с плавающей запятой, используйте этот
var s = "-12345.50 €".replace(/[^\d.-]/g, ''); // gives "-12345.50"
Используйте регулярное выражение, если ваша реализация script поддерживает их. Что-то вроде:
myString.replace(/[^0-9]/g, '');
Вы можете использовать RegExp для replace все символы без цифр:
var myString = 'abc123.8<blah>';
myString = myString.replace(/[^\d]/g, ''); // 1238
Что-то по строкам:
yourString = yourString.replace ( /[^0-9]/g, '' );
попробуйте
myString.match(/\d/g).join''
var myString = 'abc123.8<blah>'
console.log( myString.match(/\d/g).join'' );
мы находимся в 2017, теперь вы также можете использовать ES2016
var a = 'abc123.8<blah>';
console.log([...a].filter( e => isFinite(e)).join(''));
или
console.log([...'abc123.8<blah>'].filter( e => isFinite(e)).join(''));
Результат
1238