Если число находится в начале строки:
("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"]
Вы можете отобразить полученный массив в массив Numbers:
"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