Как разбирать строку в int в javascript
Я хочу int from string в javascript, как я могу получить их из
test1, stsfdf233, fdfk323,
Кто-нибудь покажет мне способ получить целое число из этой строки.
это правило, что int всегда находится в конце строки.
как я могу получить int, который был наконец в моей строке
Ответы
Ответ 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 уже извлекает десятичные цифры и строит стробированную строку