Javascript убрать все символы кроме цифр

Как убрать из строки все, кроме букв, цифр, пробела, восклицательного знака и знака вопроса?

Буквы, цифры, пробелы, восклицательные знаки, вопросительные знаки из строки?

Важно, чтобы метод поддерживал международные языки (UTF-8).

3 ответа

Вы можете использовать регулярное выражение

Это заменит все, кроме символа слова, пробела, восклицательного знака или вопроса.

Класс символов: \w означает «символ слова», обычно > . Обратите внимание на включение подчеркивания и цифр.

\s означает «символ пробела». Это включает [ \t\r\n] .

Если вам не нужно подчеркивание, вы можете использовать только [A-Za-z0-9] .

Для символов Юникода вы можете добавить что-то вроде \u0000-\u0080 в выражение. Это исключит все символы в этом диапазоне Юникода. Вам нужно будет указать диапазон символов, которые вы не хотите удалить. Вы можете увидеть все коды на карте Юникода. Просто добавьте символы, которые вы хотите сохранить, или диапазон символов.

myString.replace(/[^A-Za-z0-9\s!?\u0000-\u0080\u0082]/g,''); 

Это позволит использовать все ранее упомянутые символы в диапазоне от \u0000-\u0080 и \u0082 . Это удалит \u0081 .

Оба ответа, опубликованные до сих пор, оставили знак вопроса. Я бы прокомментировал их, но у меня пока недостаточно представителей.

Дэвид прав, регулярное выражение Сахлина оставит подчеркивание. Регулярное выражение rcdmk, измененное следующим образом, сделает свое дело, хотя, если вы заботитесь о международных символах, все может стать намного сложнее.

var result = text.replace(/[^a-zA-Z0-9\s!?]+/g, ''); 

Это оставит после себя новые строки и вкладки, а также пробелы. Если вы хотите избавиться от новых строк и вкладок, измените его на:

var result = text.replace(/[^a-zA-Z0-9 !?]+/g, ''); 

Вы можете попробовать с регулярным выражением вроде: var cleaned = someString.replace(/[^a-zA-Z0-9! ]+/g, «»);

Источник

Javascript убрать все символы кроме цифр

Last updated: Feb 15, 2023
Reading time · 3 min

banner

# Table of Contents

# Remove all non-numeric characters from String in JavaScript

Use the String.replace() method to remove all non-numeric characters from a string.

The String.replace() method will remove all characters except the numbers in the string by replacing them with empty strings.

Copied!
const str = 'bobby 123 !@#$%^hadz?456._com'; const result = str.replace(/\D/g, ''); console.log(result); // 👉️ 123456

The first argument we passed to the String.replace() method is a regular expression.

The forward slashes / / mark the beginning and end of the regular expression.

Copied!
const str = 'bobby 123 !@#$%^hadz?456._com'; const result = str.replace(/\D/g, '');

We used the g (global) flag to denote that the regular expression should match all occurrences in the string, and not just the first occurrence.

The \D character matches all non-digit characters.

The second argument we passed to the String.replace() method is the replacement for each match.

We used an empty string as the replacement to remove all non-numeric characters from the string.

Copied!
const str = 'bobby 123 !@#$%^hadz?456._com'; const result = str.replace(/\D/g, ''); console.log(result); // 👉️ 123456

The replace() method doesn’t change the original string, it returns a new string. Strings are immutable in JavaScript.

We replace all non-digit characters with an empty string to remove them from the string.

# Using a character class instead of the \D special character

You can also use a character class containing a range of digits to achieve the same result.

Copied!
const str = 'bobby 123 !@#$%^hadz?456._com'; const result = str.replace(/[^0-9]/g, ''); console.log(result); // 👉️ 123456

The square brackets [] are called a character class and match the digits in the range.

When a caret ^ is used at the beginning of a character class, it means «Not the following».

In other words, match anything but the digits in the range from 0 to 9 and remove the matches.

This wouldn’t work if you have floating-point numbers in your string because the dots . would also get stripped.

If you are trying to preserve a float number by keeping dots in the final result, things can go wrong if the string contains multiple dots or a dot in the wrong place.

# Leaving dots in the result to preserve floating-point numbers

If you want to leave dots in the result to try to preserve floating-point numbers, use the following regular expression.

Copied!
const str = 'bobby 123 !@#$%^hadz?.456_com'; const result = str.replace(/[^\d.]/g, ''); console.log(result); // 👉️ 123.456

The forward slashes / / mark the beginning and end of the regular expression.

The part between the square brackets [] is called a character class and matches everything except for digits and dots.

The caret ^ symbol in the regex means «NOT the following».

We match all non-digits or dots in the example.

The \d character matches all digits in the range 1. However, we prefixed the character with a caret ^ (not). So in its entirety, the regex matches all non-digit characters and dots.

As previously noted, things can go wrong if multiple dots exist in the string or a dot is at the wrong place.

# Taking negative numbers into account

If you need to take negative numbers into account, slightly tweak the regular expression.

Copied!
const str = '-bobby 123 !@#$%^hadz?.456_com'; const result = str.replace(/[^\d.-]/g, ''); console.log(result); // 👉️ -123.456

Notice that we added a minus sign — at the end of the character class.

# Handling multiple dots in the string

If you need to handle multiple dots in the string, use the parseFloat() function on the result.

Copied!
const str = '-124.45.67 $'; const result = parseFloat(str.replace(/[^\d.-]/g, '')); console.log(result); // 👉️ -124.45

We used the same regular expression to remove all non-numeric characters from the string.

The last step is to use the parseFloat() function to remove the part after the second period.

Copied!
const str = '-124.45.67 $'; // 👇️ -124.45.67 console.log(str.replace(/[^\d.-]/g, '')); const result = parseFloat(str.replace(/[^\d.-]/g, '')); console.log(result); // 👉️ -124.45

The parseFloat() function takes a string as a parameter, parses the string and returns a floating-point number.

Copied!
const str1 = '123.456abc'; console.log(parseFloat(str1)); // 👉️ 123.456 const str2 = '88.123bc'; console.log(parseFloat(str2)); // 👉️ 88.123

As with parseInt() , the parseFloat() method ignores the non-numeric characters at the end of the string.

# Additional Resources

You can learn more about the related topics by checking out the following tutorials:

I wrote a book in which I share everything I know about how to become a better, more efficient programmer.

Источник

Как удалить все буквы, цифры и спецсимволы в строке на PHP/JavaScript?

Этот своего рода вариант обрезки строки будет полезен, когда вы хотите получить информацию в определенном виде. Например, ник пользователя может быть только из букв, когда как его возраст – указывается числом.

Тому, как можно решить поставленные задачи, и посвящена эта статья.

Как удалить все буквы, цифры и спецсимволы в строке на PHP?

В PHP для удаления нужных символов мы воспользуемся функцией «preg_replace», с помощью которой по регулярному выражению найдем и удалим нужные нам символы.

Реализация для удаления всех букв:

Реализация для удаления всех цифр:

Реализация для удаления спецсимволов:

 ', '|', ':', '"', '', '?', '[', ']', ';', "'", ',', '.', '/', '', '~', '`', '='); $new_content = str_replace($code_match, '', $content); echo $new_content; // Выведет "12 Hello 3 world 45" ?>

В таком случае удаляются символы «! @ # $ % ^ & * ( ) _ + < >| : » ? [ ] ; ‘ , . / — ~ ` =».

Как удалить все буквы, цифры и спецсимволы в строке на JavaScript?

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

Реализация для удаления всех букв:

   

Реализация для удаления всех цифр:

   

Реализация для удаления спецсимволов:

   

Если вдруг при использовании какого-либо способа у вас возникают трудности – пишите об этом в комментариях.

Источник

javascript оставить только цифры

При обработке полученных данных, допустим, фразы «Цена: 300 руб.», вам может потребоваться получение только числовых значений, например, для сложения и подведения общего итога.

Как же обрезать строку и получить только числа?

Удаляем все символы, кроме цифр, из строки на PHP

На PHP существует удобная функция «preg_replace» – с ее помощью мы и сделаем обработку данных.

Способ удобен, если вы обрабатываете данные на стороне сервера.

Удаляем все символы, кроме цифр, из строки на JavaScript

В JavaScript для решения тех же задач мы будем использовать replace. Реализация:

Этот способ удобен, если нужно обработать данные на стороне пользователя.

как получить из строки только цифры и точку между числами например — Код 22.50 — результат должен быть 22.50, это текст записываеться в textarea как можно чтобы когда получались только числа и после каждый код был с абзаца

2 ответа 2

С помощью регулярки /d+.d+/.exec(‘Код 22.50’)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками javascript или задайте свой вопрос.

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2019 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2019.11.15.35459

Реализую проверку формы при помощи регулярки. Хочу реализовать удаление всех посторонних символов, кроме цифр, точки и еще раз цифр. Чтоб разрешено было вводить данные типа 99.99999 .

В результате у меня удаляются все символы, какие я бы не ввел. Что я делаю не так? Пытался добавить к шаблону /^1 +.1 $/i , но с добавленными к шаблону значениями регулярка выводит ошибки. А добавил я значения к шаблону для того, чтоб максимальное число можно было вводить 100.00000 .

2 ответа 2

Не правильно используется метод replace

  1. Не задан второй обязательный параметр, указывающий на что именно заменять
  2. не верно регулярное выражение: в шаблоне должно указываться что нужно найти и заменить, таким образом в текущем виде регулярка ищет все числа и заменяет их на undefined, что является значением по умолчанию второго параметра.

Таким образом надо изменить само выражение

А далее использовать parseFloat либо Number

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

Источник

Как удалить все специальные символы, кроме чисел и пробелов, в строке с использованием JavaScript?

Я разрабатываю приложение Android Phonegap. Теперь я хочу передать некоторые параметры с одной страницы на другую страницу html. Я не использую какие-либо методы на стороне сервера. На второй странице я хочу получить все прошедшие параметры с первой страницы с помощью JavaScript.

Файл:///C: /Users/dell/Projects/testapp1/search_result.html searchstr = word1+ *% 26 ^ + word2 + 3 + word3 +% 40% 23 & город = город & showdishesnearby = ложь

Следующая функция используется для извлечения значений всех параметров:

function getUrlVars() < var vars = <>; var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (m, key, value) < varsJavascript убрать все символы кроме цифр = value; >); return vars; > searchString = getUrlVars()["searchstr"]; // this is how I call above function to get value of passed particular parameter 

Теперь я хочу удалить все специальные символы, кроме чисел и пробелов в переменной searchString .

Я использовал приведенный ниже код:

searchString = searchString.replace(/[^a-zA-Z ]/g, " "); 

но это не решает мою проблему. Как удалить все специальные символы, кроме чисел и пробелов, в строке с использованием JavaScript?

searchString.replace(/[^a-z\d\s]+/gi, ""); 

удаляет все, кроме букв, цифр и пробелов.

var s = 'keep%8$this part 3£[email protected] £$% @£'; s.replace(/[^a-z\d\s]+/gi, ""); // "keep8this part 3plz " 

Просто добавьте ниже код для замены всех буквенно-цифровых символов (пунктуация, темп, подчеркивание)

var string = str.replace(/[^A-Za-z0-9]/g,"") 

Источник

Читайте также:  Round function in java
Оцените статью