Wenn die Zahl zu Beginn der Zeichenfolge:
("123 hello everybody 4").replace(/(^\d+)(.+$)/i,'$1'); //=> '123'
Wenn es irgendwo in der Kette:
(" hello 123 everybody 4").replace(/(^.+)(\w\d+\w)(.+$)/i,'$2'); //=> '123'
Und für ein Anzahl zwischen Zeichen:
("hello123everybody 4").replace(/(^.+\D)(\d+)(\D.+$)/i,'$2'); //=> '123'
[Nachtrag]
Ein regulärer Ausdruck alle Zahlen in einer Zeichenfolge entsprechen:
"4567 stuff is fun4you 67".match(/^\d+|\d+\b|\d+(?=\w)/g); //=> ["4567", "4", "67"]
Sie können das resultierende Array in ein Array von Zahlen Karte:
"4567 stuff is fun4you 67"
.match(/^\d+|\d+\b|\d+(?=\w)/g)
.map(function (v) {return +v;}); //=> [4567, 4, 67]
Einschließlich Schwimmer:
"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]
Wenn die Möglichkeit besteht, dass die Zeichenfolge enthält keine Zahl, verwenden:
("stuff is fun"
.match(/\d+\.\d+|\d+\b|\d+(?=\w)/g) || [])
.map(function (v) {return +v;}); //=> []
So, Anfang oder Ende Zahlen des Strings 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
abrufen Wenn Sie * wissen * Da ist eine Nummer in der Zeichenfolge, Sie können diesen Einzeiler verwenden: '" Hallo 123 da! 45 ".match (/ \ d + /). Shift();' Andernfalls sollten Sie vor dem '.shift()' auf 'null' prüfen. [Quelle] (https://stackoverflow.com/ a/609588/114558) – rinogo