JavaScript Unicode Matching - PullRequest
       0

JavaScript Unicode Matching

0 голосов
/ 24 сентября 2018

Я использую Node.js для чтения данных из файла XML.Но когда я пытаюсь сравнить данные из файла с литералом, они не совпадают, даже если они выглядят одинаково:

  const parser: xml2js.Parser = new xml2js.Parser();
  const suggestedMatchesXml: any
    = fs.readFileSync(`${inputSuggMatchXmlFile}`, 'utf8');
  parser.parseString(suggestedMatchesXml, (_parseErr: any, result: any) => {
    // console.debug(`result = ${util.inspect(result, false, null)}`);
    suggestedMatchesObjFromXml = JSON.parse(JSON.stringify(result));
    // console.debug(`suggestedMatchesObjFromXml BEFORE = ${JSON.stringify(suggestedMatchesObjFromXml)}`);
  });
  const destinations: Array<any> = suggestedMatchesObjFromXml.suggestedmatches.destination;
  let docIdForUrl: string | undefined;
  _.each(destinations, (destination: any) => {
    const { url }: { url: string } = destination;
    if (!destination.docId) {
      console.debug(`processInputSmXmlFile(): url = ${url} ; index = ${_.indexOf(url, 'meetings')}`);

Вот журнал:

processInputSmXmlFile(): url = https://apps.na.collabserv.com/meetings/ ; index = -1

IЯ не уверен, как это может произойти, если только одна из этих строк не является юникодом, а другая нет.

Как я могу преобразовать это так или иначе, чтобы данные соответствовали?

1 Ответ

0 голосов
/ 24 сентября 2018

Поскольку я делал JSON.parse(), url не была строкой - это был объект.Когда я сделал _.toString(url) и заменил _.indexOf(url, 'meetings') на _.includes(url, 'meetings') (поскольку Lodash indexOf() предназначен только для массивов), теперь все работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...