我试图从字符串的开头只获取数字。
我有以下代码从字符串中获取数字和文本。
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
。如果数字在字符串的第一个位置,它可以正常工作。
答案 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);

希望这会有所帮助:)