Regexp javascript только числа

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

Если бы у меня была строка типа “что-то12” или “что-то 102”, как бы я использовал регулярное выражение в javascript, чтобы вернуть только части числа?

var numberPattern = /\d+/g; 'something102asdfkj1948948'.match( numberPattern ) 

Это вернет объект с двумя элементами внутри “102” и “1948948”. Действуйте по своему усмотрению. Если он не соответствует ни одному, он вернет null.

Предполагая, что вы не имеете дело со сложными десятичными знаками, этого должно быть достаточно.

Вы также можете удалить все нецифровые символы ( \D или [^0-9] ):

let word_With_Numbers = 'abc123c def4567hij89' let word_Without_Numbers = word_With_Numbers.replace(/\D/g, ''); console.log(word_Without_Numbers)

Для числа с десятичной дробью и знаком минус я использую этот фрагмент:

 var NUMERIC_REGEXP = /[-][\d]*[\.][\d]+/g; '2.2px 3.1px 4px -7.6px obj.key'.match(NUMERIC_REGEXP) // return ["2.2", "3.1", "4", "-7.6"] 

Обновление: – 9/9/2018

Нашел инструмент, позволяющий визуально редактировать регулярные выражения: JavaScript Regular Expression Parser & Visualizer.

Вот еще один, с помощью которого вы можете даже отладчик регулярных выражений: онлайн тестер регулярных выражений и отладчик.

Regexper и Regex Pal.

Если вам нужны только цифры:

var value = '675-805-714'; var numberPattern = /\d+/g; value = value.match( numberPattern ).join([]); alert(value); //Show: 675805714 

Теперь вы получаете цифры, соединенные

Я думаю, вы хотите получить число из строки. В этом случае вы можете использовать следующее:

// Returns an array of numbers located in the string function get_numbers(input) < return input.match(/3+/g); >var first_test = get_numbers('something102'); var second_test = get_numbers('something102or12'); var third_test = get_numbers('no numbers here!'); alert(first_test); // [102] alert(second_test); // [102,12] alert(third_test); // null 

Ответы не соответствуют вашему вопросу, что подразумевает конечное число. Кроме того, помните, что вы возвращаете строку; если вам действительно нужен номер, введите результат:

item=item.replace('^.*\D(\d*)$', '$1'); if (!/^\d+$/.test(item)) throw 'parse error: number not found'; item=Number(item); 

Если вы имеете дело с числовыми идентификаторами элементов на веб-странице, ваш код также может с пользой принять Element , извлекая номер из его id (или его первого родителя с id ); если у вас есть Event , вы также можете получить Element от этого.

var result = input.match(/\d+/g).join([]) 

IMO ответ № 3 в этот раз от Chen Dachao – правильный путь, если вы хотите захватить любое число, но регулярное выражение можно сократить с:

"lin-grad.ient(217deg,rgba(255, 0, 0, -0.8), rgba(-255,0,0,0) 70.71%)".match(/-?\d*\.?\d+/g) 

Я вырезал пример линейного градиента MDN, так что он полностью тестирует регулярное выражение и не нуждается в прокрутке здесь. Я думаю, что я включил все возможности с точки зрения отрицательных чисел, десятичных знаков, единичных суффиксов, таких как deg и%, непоследовательного использования запятой и пробела, а также дополнительных символов точки/точки и дефиса/тире в тексте “lin-grad.ient “. Пожалуйста, дайте мне знать, если я что-то упустил. Единственное, что я вижу, что он не обрабатывает, это неправильно сформированное десятичное число, например, “0,8”.

Если вам действительно нужен массив чисел, вы можете преобразовать весь массив в одну строку кода:

array = whatever.match(/-?\d*\.?\d+/g).map(Number); 

Мой конкретный код, который выполняет синтаксический анализ функций CSS, не должен беспокоиться о нечисловом использовании символа точки/точки, поэтому регулярное выражение может быть еще проще:

var result = input.match(/\d+/g).join([]) 

Источник

Numbers only regex (digits only)

Numbers only (or digits only) regular expressions can be used to validate if a string contains only numbers.

Basic numbers only regex

Below is a simple regular expression that allows validating if a given string contains only numbers:

Enter a text in the input above to see the result

Example code in Javascript:

Real number regex

Real number regex can be used to validate or exact real numbers from a string.

Enter a text in the input above to see the result

Example code in Javascript:

 

Enter a text in the input above to see the result

Notes on number only regex validation

In JavaScript you can also validate number by trying to parse it using a Number constructor and then using isNaN function of a Number class:

Create an internal tool with UI Bakery

Discover UI Bakery – an intuitive visual internal tools builder.

Источник

JavaScript | Как получить только цифры из строки?

Нам нужно из этой строки удалить все буквы и оставить только символы и цифры. Как это сделать?

В этом нам помогут регулярные выражения, классы символов и диапазоны классов. Все замены мы будем производить методом replace() .

CharacterClass, ClassRanges, NonemptyClassRanges - ECMAScript

Регулярному выражению будет присвоен глобальный флаг «g» для оценки всех повторений в строке. Заменять мы будем на пустую строку, что будет приравнено к удалению.

Получим слипшиеся цифры в виде одной строки:

только пробелы stroka.replace(/[^0-9, ]/g,"") пробелы и любые другие символы stroka.replace(/[^0-9,\s]/g,"")

В диапазон символов мы добавили пробел, поэтому нам вернулась строка с пробелами.

Альтернативный синтаксис

Можно использовать специальный экранированный класс символа (CharacterClassEscape), который обозначается буквой D .

Производства CharacterClassEscape - ECMAScript 2021

Он находит сопоставления в строке, которые НЕ равны набору из десяти цифр.

Семантика времени выполнения: компиляция в набор символов - производства

Он экранированный — это значит, что перед D мы должны будем поставить символ обратной косой черты \ . Ну и конечно это всё мы будем вводить внутри шаблона регулярного выражения, который обозначается границами в виде двух косых линий / / .

То есть мы можем найти в строке все места где символ не соответствует одному из: 0123456789

var stroka color: #993300;">Привет1274 ме234ня зо65вут 7987Ефим!"
stroka.replace(/\D/g,'') '1274234657987'

Источник

Regex, используя JavaScript, чтобы вернуть только цифры

Если бы у меня была строка типа "что-то12" или "что-то 102", как бы я использовал регулярное выражение в javascript, чтобы вернуть только части числа?

8 ответов

var numberPattern = /\d+/g; 'something102asdfkj1948948'.match( numberPattern ) 

Это вернет объект с двумя элементами внутри "102" и "1948948". Действуйте по своему усмотрению. Если он не соответствует ни одному, он вернет null. Предполагая, что вы не имеете дело со сложными десятичными знаками, этого должно быть достаточно.

paseInt или что выше. Я попробовал оба, оба вывести одно и то же. Обновите NVM, я использовал его для удаления px из «34px». и именно там работает только parseint, где все цифры - первые буквы.

@ meder Вроде. Arrays наследуются от Objects . Для начала порядок элементов Array гарантирован, порядок Object - нет. Кроме того, Arrays имеют дополнительный объект в своей цепочке прототипов, Array.prototype , который содержит такие методы, как .join() . Что-то вроде следующего вызовет ошибку .join и вернет .length как неопределенное: var pattern = /\d+/g; var string = 'something102asdfkj1948948'; var result = string.match( pattern ); result.join(''); result.length;

@MuhammadUmer, @meder: вам двоим следует объединить усилия: parseInt('987d98sf79s7f9s8f9sf'.match(/\d+/gi).join(''))

Чтобы проверить наличие негативов (например, blah blah -42 hello должен вернуть -42 ), используйте numberPattern = /(\d+|-)/g; затем используйте join

Вы также можете удалить все нецифровые символы ( \D или [^0-9] ):

let word_With_Numbers = 'abc123c def4567hij89' let word_Without_Numbers = word_With_Numbers.replace(/\D/g, ''); console.log(word_Without_Numbers)

Для числа с десятичной дробью и знаком минус я использую этот фрагмент:

 var NUMERIC_REGEXP = /[-][\d]*[\.][\d]+/g; '2.2px 3.1px 4px -7.6px obj.key'.match(NUMERIC_REGEXP) // return ["2.2", "3.1", "4", "-7.6"] 

Обновление: - 9/9/2018

Нашел инструмент, позволяющий визуально редактировать регулярные выражения: JavaScript Regular Expression Parser & Visualizer.

Вот еще один, с помощью которого вы можете даже отладчик регулярных выражений: онлайн тестер регулярных выражений и отладчик.

Regexper и Regex Pal.

похоже, что это будет соответствовать вещам как 0.0.0. Попробуйте переместить. вне скобки, как это [-] <0,1>[\ d] * [\.] <0,1>[\ d] +

Если вам нужны только цифры:

var value = '675-805-714'; var numberPattern = /\d+/g; value = value.match( numberPattern ).join([]); alert(value); //Show: 675805714 

Теперь вы получаете цифры, соединенные

Я думаю, вы хотите получить число из строки. В этом случае вы можете использовать следующее:

// Returns an array of numbers located in the string function get_numbers(input) < return input.match(/4+/g); >var first_test = get_numbers('something102'); var second_test = get_numbers('something102or12'); var third_test = get_numbers('no numbers here!'); alert(first_test); // [102] alert(second_test); // [102,12] alert(third_test); // null 

Просто чтобы прояснить это, get_numbers/1 возвращает массив строк, а не число. Для вашего примера он вернет: * ["102"] * ["102", "12"] * null

var result = input.match(/\d+/g).join([]) 

Ответы не соответствуют вашему вопросу, что подразумевает конечное число. Кроме того, помните, что вы возвращаете строку; если вам действительно нужен номер, введите результат:

item=item.replace('^.*\D(\d*)$', '$1'); if (!/^\d+$/.test(item)) throw 'parse error: number not found'; item=Number(item); 

Если вы имеете дело с числовыми идентификаторами элементов на веб-странице, ваш код также может с пользой принять Element , извлекая номер из его id (или его первого родителя с id ); если у вас есть Event , вы также можете получить Element от этого.

IMO ответ № 3 в этот раз от Chen Dachao - правильный путь, если вы хотите захватить любое число, но регулярное выражение можно сократить с:

"lin-grad.ient(217deg,rgba(255, 0, 0, -0.8), rgba(-255,0,0,0) 70.71%)".match(/-?\d*\.?\d+/g) 

Я вырезал пример линейного градиента MDN, так что он полностью тестирует регулярное выражение и не нуждается в прокрутке здесь. Я думаю, что я включил все возможности с точки зрения отрицательных чисел, десятичных знаков, единичных суффиксов, таких как deg и%, непоследовательного использования запятой и пробела, а также дополнительных символов точки/точки и дефиса/тире в тексте "lin-grad.ient ". Пожалуйста, дайте мне знать, если я что-то упустил. Единственное, что я вижу, что он не обрабатывает, это неправильно сформированное десятичное число, например, "0,8".

Если вам действительно нужен массив чисел, вы можете преобразовать весь массив в одну строку кода:

array = whatever.match(/-?\d*\.?\d+/g).map(Number); 

Мой конкретный код, который выполняет синтаксический анализ функций CSS, не должен беспокоиться о нечисловом использовании символа точки/точки, поэтому регулярное выражение может быть еще проще:

Источник

Читайте также:  Master template in html
Оцените статью