Javascript 规范化字符串



所以我必须解析一个搜索字符串,以便稍后从中生成一个 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);
}

最新更新