我试图用分隔符分割两个部分的字符串" 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"]
最佳方法应该是什么?
答案 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)
只需用空白字符替换字符,并将该字符串存储到新变量中。您将获得所有数字