Wenn die Zahl am Anfang des Strings steht:
("123 hallo alle 4").replace(/(^\d+)(.+$)/i,'$1'); //=> '123'
Wenn sie irgendwo im String steht:
(" hallo 123 alle 4").replace( /(^.+)(\w\d+\w)(.+$)/i,'$2'); //=> '123'
Und für eine Zahl zwischen Zeichen:
("hallo123alle 4").replace( /(^.+\D)(\d+)(\D.+$)/i,'$2'); //=> '123'
[Zusatz]
Ein regulärer Ausdruck, um alle Zahlen in einem String abzugleichen:
"4567 Spaß ist gut4you 67".match(/^\d+|\d+\b|\d+(?=\w)/g); //=> ["4567", "4", "67"]
Sie können das resultierende Array einer Array von Zahlen zuordnen:
"4567 Spaß ist gut4you 67"
.match(/^\d+|\d+\b|\d+(?=\w)/g)
.map(function (v) {return +v;}); //=> [4567, 4, 67]
Einschließlich Floats:
"4567 Spaß ist gut4you 2.12 67"
.match(/\d+\.\d+|\d+\b|\d+(?=\w)/g)
.map(function (v) {return +v;}); //=> [4567, 4, 2.12, 67]
Wenn die Möglichkeit besteht, dass der String keine Zahlen enthält, verwenden Sie:
( "Spaß ist gut"
.match(/\d+\.\d+|\d+\b|\d+(?=\w)/g) || [] )
.map(function (v) {return +v;}); //=> []
Also, um die Anfangs- oder Endzahlen des Strings 4567 Spaß ist gut4you 2.12 67"
abzurufen
// Anfangsnummer
var startingNumber = ( "4567 Spaß ist gut4you 2.12 67"
.match(/\d+\.\d+|\d+\b|\d+(?=\w)/g) || [] )
.map(function (v) {return +v;}).shift(); //=> 4567
// Endnummer
var endingNumber = ( "4567 Spaß ist gut4you 2.12 67"
.match(/\d+\.\d+|\d+\b|\d+(?=\w)/g) || [] )
.map(function (v) {return +v;}).pop(); //=> 67