Извлечение только определенных строк из кода - PullRequest
0 голосов
/ 14 сентября 2011

У меня есть различные очень большие файлы JavaScript, и мне нужно извлечь только определенные строки.Входными данными будут сотни строк, например:

function foo("ignore this string"){
var n = "copy this";
}
function bar("copy this string"){
var i = "ignore this string";
}
var globalX ="copy if over a certain length";
var globalY ="copy if within 2 lines of 'globalX'";

Выходными данными будет простой список строк.Написание правил не составило бы труда, но может ли JavaScript прочитать 100 страниц кода и обработать его как строку для анализа?если нет, какие еще инструменты я должен использовать?Любые предложения приветствуются!

1 Ответ

0 голосов
/ 14 сентября 2011

Исходя из вашего комментария выше - вам нужен механизм локализации JavaScript.Есть несколько опций, которые зависят от того, как вы собираете и упаковываете свое приложение.

Вот некоторые механизмы:

1) Создайте отдельный файл JS для каждого языка и загрузитеправильный в зависимости от клиента (путем получения его информации из запроса).

Довольно плохо - много дублирования и накладных расходов.

2) Немного улучшенометод состоит в том, чтобы представить каждую строку объектом:

var localeStrings =
{
    'some message':
    {
        'en/US':'Some text',
        'ru/RU':'Какой-то текст'
    }
}

, чем в вашем коде вы получаете реальное сообщение, снова вызывая localeStrings['some message']['en/US'], извлекая язык из заголовка запроса и используя так же, как яused 'en/US'.

Также плохо - так как, опять же, много ненужных данных загружается клиенту.

3) Некоторая форма динамической замены по запросу.

Вообще говоря, идея заключается в том, что у вас есть некоторые для серверного компонента (скажем, сервлета), который заменяет токены (скажем, `## {some token}) данными из файла на стороне сервера(ы), которые содержатs переводы.

Это может привести к тому, что пользовательские ответы будут немного задержаны, но это только предположение и может быть незначительным.

Выберите свой яд.

IЯ уверен, что есть еще, и я хотел бы видеть их в ответах.Я не смог найти что-то, что мог бы использовать "из коробки".

РЕДАКТИРОВАТЬ : забыл указать вам на связанный разговор .

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