2017-09-16 141 views
0

我有一個問題。如何從字符串數組中分割數字和字符串?

如果我得到"10S2D*3T"字符串,我必須將數字和數字相除。

我想要做什麼

INPUT

"10S2D*3T" 

輸出

[10, 'S', 2, 'D','*',3,'T'] 

這是我的結果

function solution(dartResult) { 
 
    var answer = 0; 
 
    var point = dartResult.split(/\D/gi); 
 
    var option = dartResult.split(/\d/gi); 
 
    console.log(point); 
 
    console.log(option); 
 
    return answer; 
 
} 
 

 
console.log(solution("10S2D*3T"));

+0

使用匹配方法。你的描述也不清楚,因爲'D'和'*'不是數字並且在結果中是分開的。 –

+0

「分數」是什麼意思?你想從輸入字符串中提取數字嗎?你想執行一個部門?順便說一句,「S」,「D」,「T」和「*」是什麼意思?我們需要更多的背景才能提供準確的答案。 – leaf

回答

2

可以使用字符串分割方法和把它傳遞一個正則表達式來檢查數字和過濾空字符串的數組。

var regExp = /(\d*)/; 
var output = '10S2D*3T'.split(regExp).filter(Boolean); 

output will be: 
["10", "S", "2", "D", "*", "3", "T"] 

https://i.stack.imgur.com/QAr3G.png

+0

非常感謝。 – zynkn

+0

您應該解釋爲什麼您將捕獲組置於正則表達式中。這是他在代碼中缺少的重要內容。 – Barmar

+0

捕獲組用於依次檢查任意數量的數字。 –