Получите первые целые числа в строке с JavaScript

Это было о старой версии jQuery. Я изменил версию jQuery и проблема была решена. Спасибо за помощь.

32
задан simhumileco 17 January 2019 в 09:02
поделиться

4 ответа

Если число в начале строки:

("123 hello everybody 4").replace(/(^\d+)(.+$)/i,'$1'); //=> '123'

, Если это находится где-нибудь в строке:

(" hello 123 everybody 4").replace( /(^.+)(\w\d+\w)(.+$)/i,'$2'); //=> '123'

И для числа между символами:

("hello123everybody 4").replace( /(^.+\D)(\d+)(\D.+$)/i,'$2'); //=> '123'

[ приложение ]

регулярное выражение А для соответствия всем числам в строке:

"4567 stuff is fun4you 67".match(/^\d+|\d+\b|\d+(?=\w)/g); //=> ["4567", "4", "67"]

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

"4567 stuff is fun4you 67"
  .match(/^\d+|\d+\b|\d+(?=\w)/g)
  .map(function (v) {return +v;}); //=> [4567, 4, 67]

Включая плавания:

"4567 stuff is fun4you 2.12 67"
  .match(/\d+\.\d+|\d+\b|\d+(?=\w)/g)
  .map(function (v) {return +v;}); //=> [4567, 4, 2.12, 67]

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

( "stuff is fun"
   .match(/\d+\.\d+|\d+\b|\d+(?=\w)/g) || [] )
   .map(function (v) {return +v;}); //=> []

Так, для получения запуска или чисел конца строки 4567 stuff is fun4you 2.12 67"

// start number
var startingNumber = ( "4567 stuff is fun4you 2.12 67"
  .match(/\d+\.\d+|\d+\b|\d+(?=\w)/g) || [] )
  .map(function (v) {return +v;}).shift(); //=> 4567

// end number
var endingNumber = ( "4567 stuff is fun4you 2.12 67"
  .match(/\d+\.\d+|\d+\b|\d+(?=\w)/g) || [] )
  .map(function (v) {return +v;}).pop(); //=> 67
57
ответ дан 27 November 2019 в 19:48
поделиться
var str = "some text and 856 numbers 2";
var match = str.match(/\d+/);
document.writeln(parseInt(match[0], 10));

, Если строки запускается с числа (возможно, предшествовавший пробелом), простой parseInt(str, 10), достаточно. parseInt пропустит ведущий пробел.

10 необходимо, потому что иначе представляют в виде строки как 08, будет преобразован в 0 (parseInt в большинстве реализаций, рассматривают числа, запускающиеся с 0 как восьмеричные).

46
ответ дан 27 November 2019 в 19:48
поделиться

Если Вы хотите интервал, всего parseInt(myString, 10). (Эти 10 показывает основу 10; иначе JavaScript может попытаться использовать другую основу такой в качестве 8 или 16.)

8
ответ дан 27 November 2019 в 19:48
поделиться

Используйте регулярные выражения:

var re = new RegExp(/^\d+/); //starts with digit, one or more
var m = re.exec("4567 stuff is fun 67");
alert(m[0]); //4567

m = re.exec("stuff is fun 67");
alert(m); // null
2
ответ дан 27 November 2019 в 19:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: