簡體   English   中英

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

[英]How to find numbers in the following string using JavaScript?

我試圖用分隔符“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"]

最好的方法應該是什么?

您可以使用具有正向預測的正則表達式。

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

或者沒有字母,只是字母出現的地方。

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

只是為了完整性,一個帶有String.match的提案只需一步

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

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

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

Split 有兩個可選參數。 第一個是分隔符,第二個是限制。 您可以在此處找到文檔。

如果你想用多個分隔符分割它,你應該使用正則表達式:

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

尼納斯的回答很棒! 我是認真的。 但是如果你有更多的這些數字/數組或任何你想稱呼它的東西,只是為了讓它變得有趣,你可以使用類似 Nina 的類似方式,但使用正則表達式來獲取所有值,而無需聲明所有的字母。

包括字母:

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

沒有字母:

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

我認為您不能像這樣使用帶有多個分隔符的 split 。

您可以做的是使用正則表達式來拆分字符串。

xPos.split(/T|L/g)

應該工作。

只需用空白字符替換該字符並將該字符串存儲到新變量中。 你會得到所有的號碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM