node.js - Javascript RegEx för att matcha positiva och negativa heltal


Jag försöker extrahera positiva och negativa heltal från den givna strängen. Men kan bara extrahera positiva heltal.

Jag skickar "34,-10" strängen till getNumbersFromString-parametern

Jag får

Utdata:

['34','10']

Den förväntade utdata bör vara

[34,-10]

Hur löser jag detta problem?

function getNumbersFromString(numberString){
  var regx = numberString.match(/\d+/g);
  return regx;
}

console.log(getNumbersFromString("34,-10"));

Svar #1

Du kan också matcha --tecknet (minst 0 och högst 1) före numret. Sedan kan du använda map() för att konvertera dem till nummer.

function getNumbersFromString(numberString){
  var regx = numberString.match(/-?\d+/g).map(Number);
  return regx;
}

console.log(getNumbersFromString("34,-10"));

Svar #2

Varför använda ett regex här. Vad sägs om split() och map()

function getNumbersFromString(numberString){
  return numberString.split(',').map(Number)
}

console.log(getNumbersFromString("34,-10"));

Eller är inmatningssträngen inte "ren" och innehåller även text?

Relaterade artiklar