Разобрать текст с несколькими строками в скобках в массивы - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть проблема с синтаксическим анализом что-то вроде этого:

{form_settings['settings']['title']: "Titulek", form_settings['settings']['description']: "Popisek formuláře...", form_settings['settings']['gdpr']: "ip", form_settings['settings']['acquisition']: "n", form_settings['settings']['style_form']: "without_border", …}

Я хочу что-то вроде в PHP, где вы можете назвать это

$form_settings['settings']['title']

Но вы не можете сделатьэто в javascript, и я хочу использовать похожий массив, как в php, я хочу сделать что-то подобное

form_settings['settings']['title']

Поскольку это не работает, вы знаете, как его проанализировать?Спасибо за ответы!

// РЕДАКТИРОВАТЬ

<div class="col-md-10 col-form-label">
  <input type="text" id="title-for-receiver" class="form-control" name="form_settings['email']['{$input_form['EMAIL']['title_for_receiver']->name}']" value={$input_form['EMAIL']['title_for_receiver']->value} />
</div>

И я получил эти значения через javascript

function getFormData(form){
var unindexed_array = form.serializeArray();
var indexed_array = {};

$.map(unindexed_array, function(n, i){
    indexed_array[n['name']] = n['value'];
});

return indexed_array;
}

1 Ответ

0 голосов
/ 22 ноября 2018

Это не то, что вы можете разобрать.Этот «анализ» указывает на строку или что-то, что может быть.ЭТО: не может быть "проанализирован":

  1. Он имеет одинарные кавычки ' и двойные ", поэтому НИКОГДА не будет работать, чтобы сделать строку строкой, которая может быть проанализирована.
  2. Имеются также внутренние элементы без кавычек

{form_settings ['settings'] ['title']: "Titulek", form_settings ['settings'] ['description']: "Popisek formuláře ...", form_settings ['settings'] ['gdpr']: "ip", form_settings ['settings'] ['acquisition']: "n", form_settings ['settings'] ['style_form ']: "without_border",…}

РЕДАКТИРОВАТЬ: я добавил mythingString и синтаксический анализ этого, чтобы быть более очевидным.

Возможно передать лучший объект:

var mything = {
  "form_settings['settings']['title']": "Titulek",
  "form_settings['settings']['description']": "Popisek formuláře...",
  "form_settings['settings']['gdpr']": "ip",
  "form_settings['settings']['acquisition']": "n",
  "form_settings['settings']['style_form']": "without_border"
};

console.log(mything["form_settings['settings']['title']"]);

var mything2 = {
  form_settings: {
    settings: {
      'title': "Titulek",
      'description': "Popisek formuláře...",
      'gdpr': "ip",
      'acquisition': "n",
      'style_form': "without_border"
    }
  }
};
console.log(mything2.form_settings['settings']['title']);
console.log(mything2.form_settings.settings.title);

var mythingString = '{"form_settings[settings][title]": "Titulek",  "form_settings[settings][description]": "Popisek formuláře...", "form_settings[settings][gdpr]": "ip",  "form_settings[settings][acquisition]": "n", "form_settings[settings][style_form]": "without_border"}';

var parsedThing = JSON.parse(mythingString);
console.log(parsedThing["form_settings[settings][title]"]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...