Parsing textarea
Ответ на вопрос http://ru.stackoverflow.com/questions/597114/%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BA%D0%B0-%D0%B4%D0%BB%D1%8F-%D0%BF%D0%B0%D1%80%D1%81%D0%B8%D0%BD%D0%B3%D0%B0-%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8
by Alexey Demin
HTML
<textarea id="skinsList">
★ Falchion Knife | Boreal Forest (Factory New)
Souvenir FAMAS | Teardown (Battle-Scarred)
★ StatTrak™ Flip Knife | Lore (Field-Tested)
★ Bayonet | Autotronic (Battle-Scarred)
AK-47 | Redline (Field-Tested)
★ Karambit | Bright Water (Battle-Scarred)
StatTrak™ Negev | Man-o'-war (Minimal Wear)
★ M9 Bayonet | Marble Fade (Minimal Wear)
★ StatTrak™ Flip Knife | Gamma Doppler (Minimal Wear)
Tec-9 | Nuclear Threat (Factory New)
Souvenir Tec-9 | Nuclear Threat (Minimal Wear)
★ StatTrak™ Karambit
★ StatTrak™ Gut Knife
★ Huntsman Knife
</textarea>
CSS
textarea {
width: 100%;
height: 250px;
font-family: monospace;
}
JavaScript
console.clear();
var lines = $("#skinsList").val().split("\n"),
skins = [];
lines.forEach(function(item, i, arr){
var skin = {
isSouvenir : false,
isKnife : false,
hasCounter : false,
counterName : null,
quality : null,
name : null
},
line = item;
var starPos = line.indexOf("★");
if(starPos != -1){
skin.isKnife = true;
line = line.substr(starPos + 2);
}
var souvenirPos = line.indexOf("Souvenir");
if(souvenirPos != -1){
skin.isSouvenir = true;
line = line.substr(souvenirPos + "Souvenir".length + 1);
}
var bracePos = line.indexOf("(");
if(bracePos != -1){
skin.quality = line.substring(bracePos + 1, line.indexOf(")"));
line = line.substring(0, bracePos - 1);
}
if(line.indexOf("™ ") != -1){
var tmp = line.split("™ ");
skin.counterName = tmp[0];
skin.hasCounter = true;
line = tmp[1];
}
skin.name = line;
skins.push(skin);
});
console.info(skins);