Подтвердить что ты не робот

Как разбирать строку в int в javascript

Я хочу int from string в javascript, как я могу получить их из

test1, stsfdf233, fdfk323,

Кто-нибудь покажет мне способ получить целое число из этой строки.

это правило, что int всегда находится в конце строки.

как я могу получить int, который был наконец в моей строке

4b9b3361

Ответ 1

var s = 'abc123';
var number = s.match(/\d+$/);
number = parseInt(number, 10);

Первый шаг - простое регулярное выражение - \d+$ будет соответствовать цифрам ближе к концу.
На следующем шаге мы используем parseInt в строке, которую мы сопоставляли раньше, чтобы получить правильное число.

Ответ 2

Вы можете использовать regex для извлечения чисел в строке с помощью String#match и преобразуйте каждую из них в число через parseInt:

var str, matches, index, num;

str = "test123and456";
matches = str.match(/\d+/g);
for (index = 0; index < matches.length; ++index) {
    num = parseInt(matches[index], 10);
    display("Digit series #" + index + " converts to " + num);
}

Живой пример

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

var str, matches, num;

str = "test123";
matches = str.match(/\d+/);
if (matches) {
    num = parseInt(matches[0], 10);
    display("Found match, converts to: " + num);
}
else {
    display("No digits found");
}

Живой пример

Если вы хотите игнорировать цифры, которые не находятся в конце, добавьте $ в конец регулярного выражения:

matches = str.match(/\d+$/);

Живой пример

Ответ 3

var str = "stsfdf233";
var num = parseInt(str.replace(/\D/g, ''), 10);

Ответ 4

var match = "stsfdf233".match(/\d+$/);
var result = 0; // default value
if(match != null) {
    result = parseInt(match[0], 10); 
}

Ответ 5

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

function ExtractInteger(sValue)
{
    var sDigits = "";
    for (var i = sValue.length - 1; i >= 0; i--)
    {
        var c = sValue.charAt(i);
        if (c < "0" || c > "9")
            break;
        sDigits = c + sDigits;
    }
    return (sDigits.length > 0) ? parseInt(sDigits, 10) : NaN;
}

Пример использования:

var s = "stsfdf233";
var n = ExtractInteger(s);
alert(n);

Ответ 6

Используйте расширение для класса String:

String.prototype.toInt=function(){
    return parseInt(this.replace(/\D/g, ''),10);
}

Тогда:

"ddfdsf121iu".toInt();

Вернет целое число: 121

Ответ 7

Это может помочь вам

var str = 'abc123';
var number = str.match(/\d/g).join("");

Ответ 8

Первое положительное или отрицательное число:

"foo-22bar11".match(/-?\d+/); // -22

Ответ 9

javascript:alert('stsfdf233'.match(/\d+$/)[0]) 

Global.parseInt с radix здесь переполняется, regexp уже извлекает десятичные цифры и строит стробированную строку