所以我必须解析一个搜索字符串,以便稍后从中生成一个JSON对象。
示例输入
"Amercian01 SFO2016"
"Amercian 01 SFO 2016"
"Amercian-01 2016SFO"
"Amercian:01 SFO16"
所有这些字符串的输出应该返回
{
airline: "American",
flightNo: 01,
airport: "SFO",
year: "2016"
}
代码
var str = "Amercian-01 2016SFO";
document.write(str.split(/[ :-]+/));
它将输出American,01,2016SFO
2个问题: 1)如何将2016SFO分成2016年,SFO 2)这是最好的方法吗?
答案 0 :(得分:0)
请参阅带有工作示例的代码段:
getNormalizedData('American01 2016 SFO');
getNormalizedData('Amercian 01 SFO 2016');
getNormalizedData('American-01 SFO2016');
getNormalizedData('Amercian:01 SF0-2016');
function getNormalizedData(str) {
var airline = str;
var flightNo = "";
var airport = "";
var year = "";
var airlineEndMatch = str.match(/[ \d\-\:]/);
if (airlineEndMatch) {
airline = str.substr(0, airlineEndMatch.index);
str = str.substr(airlineEndMatch.index);
if (!str[0].match(/\d/))
str = str.substr(1);
var flighNoEnd = str.indexOf(" ");
flightNo = str.substr(0, flighNoEnd);
str = str.substr(flighNoEnd);
airport = str;
var yearMatch = str.match(/\d{4}/);
if (yearMatch) {
year = yearMatch[0]
airport = (airport.replace(year, ""))
.trim()
.replace("-", "");
}
}
var flight = {
airline: airline,
flightNo: flightNo,
airport: airport,
year: year,
}
console.log(flight);
}