javascript - Javascript(Node.JS)从字符串中提取正整数和负整数

99 4

我正在尝试从给定的字符串中提取正整数和负整数,但只能提取到正整数。

请检查我以下的代码段

我将"34,-10"字符串传递到getNumbersFromString参数,

我得到

输出:

 
['34','10']



 

预期输出应为

 
[34,-10]



 

提前感谢你

 
function getNumbersFromString(numberString){


 var regx = numberString.match(/d+/g);


 return regx;


}



console.log(getNumbersFromString(" 34,-10" ));
时间: 原作者:

94 5

你还可以在数字之前匹配-符号(至少0和最多1 ),然后你可以使用map()将它们转换为数字。

 
function getNumbersFromString(numberString){


 var regx = numberString.match(/-?d+/g).map(Number);


 return regx;


}



console.log(getNumbersFromString(" 34,-10" ));
原作者:
146 1

为什么在这里使用正规表达式。 那么split()和map()呢

 
function getNumbersFromString(numberString){


 return numberString.split(',').map(Number)


}



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

输入字符串不是"clean",它也包含文本?

原作者:
110 1

你应该使用带有条件-符号的正规表达式,如 /-?d /,也应该将字符串转换为parseInt函数。

原作者:
123 2

regex版本(假设输入字符串是正确的csv):

 
function getNumbersFromString(numberString){


 return numberString.split(',').map(v => parseInt(v))


}



console.log(getNumbersFromString(" 34,-10" ))
原作者:
87 0

你应该使用这样的条件: -?d+

 
function getNumbersFromString(numberString){


 var regx = numberString.match(/-?d+/g);


 return regx;


}



console.log(getNumbersFromString(" 34,-10" ));
原作者:
...