我有一个我需要分割的字符串,因此可以在函数中使用单个部分。例如,进入的字符串可以是502349.19
。
我需要将它拆分,以便可以在某些数学中使用:
50
23
49.19
如何将字符串拆分为可用对象?我已经看到了一些拆分它的例子,但它们没有说明如何在拆分后使用分离的值。
答案 0 :(得分:1)
可以使用String#split并根据您的需要使用正则表达式模式进行拆分。对于问题中的特定用例,下面的表达式将起作用
array = "502349.19".split(/(\d{2}\.\d{2}|\d{2})/).filter(Number);
console.log(array[0]);
//=> 50
console.log(array[1]);
//=> 23
console.log(array[2]);
//=> 49.19
使用正则表达式\d{2}\.\d{2}
匹配NN.NN形式的子字符串(其中N是数字),而正则表达式\d{2}
匹配NN形式的子字符串。我们使用管道|
来表示应该使用两个正则表达式。在正则表达式周围使用括号(...)
有助于捕获匹配结果。需要调用Array#filter
来过滤掉结果中的空白元素。
答案 1 :(得分:0)
您只需使用substring
例如,如果您想要50
作为数字,请使用:
var input = "502349.19";
var twoDigits = input.substring(0, 2);
var twoDigitsNumber = Number(twoDigits);
console.log(twoDigits + 2, twoDigitsNumber + 2)
这将导致控制台打印:
502
52
答案 2 :(得分:0)
您可以这样做:
"1234567890".match(/.{1,2}/g).map(x => parseFloat(x));
// Results in:
[12, 34, 56, 78, 90]
该方法仍然适用于大小不是块大小的精确倍数的字符串:
"123456789".match(/.{1,2}/g).map(x => parseFloat(x));
// Results in:
[12, 34, 56, 78, 9]
通常,对于您想要提取最多 n 大小的字符串的任何字符串,您可以这样做:
str.match(/.{1,n}/g); // Replace n with the size of the substring