我想知道是否有一种简单的方法可以用字符串表示法分割单位和数量,其中单位是可选的。
条目示例:10, 20kg, 14h, 5
;
你会用什么来分割例如20公斤到20公斤等?
*编辑:在我的示例列表中,我没有包含小数值,但这些也是可能的。 (0.1或1.25欧元)
答案 0 :(得分:0)
var string="10kg"// string="10kg"
var number=parseInt(string);//number=10
var unit=string.substr(parseInt(string).toString().length);//kg
答案 1 :(得分:0)
您可以使用正则表达式来分割数量......
.match(/(\D*)(\d+)(\D*)/)
...将文本拆分为4个元素的数组,第一个元素将包含原始字符串,后跟前缀,数值和后缀组。
零个或多个非数字后跟一个或多个数字,后跟零个或多个非数字。
以下是一个示例,请检查控制台:
var input = ['20kg', '40m', '$10', '50 km', '20'],
result = [];
input.forEach(function(elem) {
result.push(elem.match(/(\D*)(\d+)(\D*)/));
});
console.table(result);

您可以通过将中间组更改为:
来计算小数位数(\d+(\.\d+)?)
数字后跟一个点,然后是数字(如果存在)。