Javascript拆分字符串

时间:2015-12-24 09:25:44

标签: javascript string split

我有一个我需要分割的字符串,因此可以在函数中使用单个部分。例如,进入的字符串可以是502349.19

我需要将它拆分,以便可以在某些数学中使用:

50

23

49.19

如何将字符串拆分为可用对象?我已经看到了一些拆分它的例子,但它们没有说明如何在拆分后使用分离的值。

3 个答案:

答案 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