2017-09-16 28 views
0

私は質問があります。数字と文字列を文字列配列からどのように分割するのですか?

"10S2D*3T"文字列を取得した場合は、そのような番号ではなく番号を分割する必要があります。私が何をしたいか

INPUT

"10S2D*3T" 

OUTPUT

[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

あなたは数字をチェックして、空の文字列の配列をフィルタリングするために、文字列のsplitメソッドを使用して、それを正規表現を渡すことができます。

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

キャプチャグループは、任意の数の数字を順番にチェックするためのものです。 –

関連する問題