ドット '.' の位置を探す非常に単純なループを作成しました。文字列内のスペースとスペースをスライスして配列にプッシュします。ループは、最後のドットが見つかったときに終了する必要があります。ループが引用符を正しく終了せず、二重の出力が得られるため、私は間違いを犯していると思います。
コードは次のとおりです。
var str = '.boom .style #foo .media';
var p = 0;
var className = [];
searchLoop: for(i = 0; i < str.length; i ++) {
var n = str.indexOf('.', p);
var o = str.indexOf('#');
var p = str.indexOf(' ', n) ;
if(str.indexOf('#') >= 0)
var idName = str.slice(o + 1, n);
if(str.lastIndexOf('.') !== n)
className.push(str.slice(n + 1, p));
console.log(className);
console.log(idName);
if(str.lastIndexOf('.') === n) {
className.push(str.slice(n + 1, p) + str[str.length - 1]);
break searchLoop;
}
}
出力は次のとおりです。
["boom", "style", "media"]
["boom", "style", "media"]
["boom", "style", "media"]
foo
「#」も選択できるようにコードを少し編集したところ、今回は 3 倍の結果が得られました。