如何使用JavaScript在以下字符串中查找数字?

时间:2016-05-31 07:02:33

标签: javascript split

我试图用分隔符分割两个部分的字符串" T" &安培; " L"

T49.80000305175781L60.00000190734863

所以,我期待一个包含这些元素的数组:

[" 49.80000305175781"" 60.00000190734863"]

我尝试了这些但是他们不能工作。

    var xPos = xPos.split('T', 'L'); //Returns empty
    var xPos = xPos.split(/T/, /L/); //Returns empty
    var xPos = xPos.split(/T/); //Returns: ["", "49.80000305175781L60.00000190734863"]

最佳方法应该是什么?

6 个答案:

答案 0 :(得分:12)

你可以使用带有正面前瞻的正则表达式。

console.log('T49.80000305175781L60.00000190734863'.split(/(?=[TL])/));

或者没有字母,只是字母出现的分割。

console.log('T49.80000305175781L60.00000190734863'.split(/[TL]/));

为了完整起见,只需一步String.match的提案

console.log('T49.80000305175781L60.00000190734863'.match(/[^TL]+/g));

答案 1 :(得分:3)

您可以将.match()RegExp /\d+\.\d+/g

一起使用



console.log("T49.80000305175781L60.00000190734863".match(/\d+\.\d+/g))




答案 2 :(得分:1)

Split有两个可选参数。第一个是分隔符,第二个是限制。您可以找到here文档。

如果要将其拆分为多个分隔符,则应使用正则表达式:



console.log('T49.80000305175781L60.00000190734863'.split(/T|L/));




答案 3 :(得分:1)

Ninas回答很棒!我真心的。但只是为了让它变得有趣,如果你有更多的这些数字/数组或者你想要调用它,你可以使用类似Nina的方式,但是使用正则表达式来获取所有值,而无需声明所有值这些信件。

包括信件:

console.log('T49.80000305175781L60.00000190734863C34.534623460304040003'.split(/(?=[a-zA-Z])/));

没有字母:

console.log('T49.80000305175781L60.00000190734863C34.534623460304040003'.split(/[a-zA-Z]/));

答案 4 :(得分:1)

我不认为你可以使用像这样的多个分隔符拆分。

您可以使用正则表达式来分割字符串。

xPos.split(/T|L/g)

应该有用。

答案 5 :(得分:0)

只需用空白字符替换字符,并将该字符串存储到新变量中。您将获得所有数字