我试图从字符串开头仅获取数字。
我有以下代码从字符串中获取数字和文本。
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
。如果数字位于字符串的第一个位置,则可以正常工作。 最佳答案
在您的正则表达式中也选择了括号,这是一个小错误。
基本上是返回此:
'(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);
希望这可以帮助 :)
关于javascript - Javascript正则表达式从字符串中给出NaN,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50920708/