Что такое хороший RegExp, который удалит из строки все символы кроме целых чисел? - PullRequest
1 голос
/ 15 марта 2010

Я новичок в использовании регулярных выражений, может кто-нибудь дать мне регулярное выражение, которое будет вырезать все, кроме целого числа из строки в javascript?

Я хотел бы взять строку "http://www.foo.com/something/1234/somethingelse" и получить ее до 1234 как целое число.

Спасибо

Ответы [ 4 ]

7 голосов
/ 15 марта 2010
var str = "something 123 foo 432";

// Replace all non-digits:
str = str.replace(/\D/g, '');

alert(str); // alerts "123432"

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

var url = "http://www.foo.com/something/1234/somethingelse";
var digitMatch = url.match(/\d+/); // matches one or more digits
alert(digitMatch[0]); // alerts "1234"

// or:
var url = "http://x/y/1234/z/456/v/890";
var digitMatch = url.match(/\d+/g); // matches one or more digits [global search]
digitMatch; // => ['1234', '456', '890']
1 голос
/ 15 марта 2010
uri = "http://www.foo.com/something/1234/somethingelse";
alert(uri.replace(/.+?\/(\d+)\/.+/, "$1"))
1 голос
/ 15 марта 2010

Это только для целых чисел:

[0-9]+

+ означает совпадение 1 или более, а [0-9] означает совпадение с любым символом из диапазона от 0 до 9.

0 голосов
/ 15 марта 2010

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

/[^0-9]/g // matches anything that is NOT 0-9 (only numbers will remain)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...