Javascript Regex从字符串中给出NaN

时间:2018-06-19 04:34:41

标签: javascript regex match

我试图从字符串的开头只获取数字。

我有以下代码从字符串中获取数字和文本。

var unitData = '(135 g)'  // it may be 0.135 or .135
var unitValue = Number(unitData.match(/.?\d+\.?\d*/).toString());
var unitName = unitData.match(/[A-Za-z]+/g) || '';

console.log(unitValue);
console.log(unitName);

NaN提供unitValue。如果数字在字符串的第一个位置,它可以正常工作。

1 个答案:

答案 0 :(得分:2)

在你的正则表达式中还有一个小错误,即支架也被选中。

它基本上归还了这个:

  

'(135

我更新了正则表达式。请尝试以下:



var unitData = '(135 g)'
var unitValue = Number(unitData.match(/\d*\.?\d+/)[0]);
console.log(unitValue);
unitData = '(.135 g)'
unitValue = Number(unitData.match(/\d*\.?\d+/)[0]);
 console.log(unitValue);
unitData = '(135.42 g)'
unitValue = Number(unitData.match(/\d*\.?\d+/)[0]);
unitName = unitData.match(/[A-Za-z]+/g) || '';

console.log(unitValue);
console.log(unitName);




希望这会有所帮助:)