所以我必须解析一个搜索字符串,以便稍后从中生成一个 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(/[ :-]+/));
它将输出美国,01,2016SFO
2个问题:1( 我将如何将 2016SFO 拆分为 2016 年,SFO2(这是最好的方法吗?
这是一个小提琴 https://jsfiddle.net/pdubey84/msebk5a2/
请参阅带有工作示例的代码片段:
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);
}