Строки и разбор
Все 24 строковых метода PK: параметры, результаты, примеры и точные границы поведения.
Все 24 метода принимают обычные значения JavaScript, выполняют ту же операцию, что и соответствующая функция in-Line Kit, и возвращают string. Они не меняют исходную строку: результат нужно сохранить в переменную, парсер или динамическую переменную явно.
Что выбрать
Извлечь значение
getValueByKey, simplePars и regexPars находят данные по ключу, точным границам или регулярному выражению.
Заменить или соединить
replaceStr и regexReplace меняют совпадения, а regexGlue и simpleGlue собирают готовые результаты парсеров.
Изменить строку
Методы регистра, краёв, длины и позиции работают с единицами UTF-16 и правилами регистра Windows.
Обработать список строк
demptystr, dupDel, getLine, getCount, filterLines и sortLines считают переводы строк границами элементов.
Порядок аргументов является частью договора
Передавайте аргументы ровно в порядке из заголовка метода. Особенно легко перепутать replaceStr(from, to, input) и regexReplace(expression, to, input): исходный текст у обеих операций стоит последним.
Извлечение и разбор
PK.getValueByKey(multilineText, keyName)
Ищет первую строку ключ: значение без учёта регистра ключа.
multilineText: string — многострочный текст; keyName: string — точный искомый ключ без окружающих пробелов.
Найденное значение либо строка Key not found: Ключ. Пустое значение считается отсутствующим.
Передавайте именно два аргумента. Одно объединённое значение с |KEYNAME|, которое используется во внутренней записи in-Line, не является формой вызова объекта PK. Двоеточия внутри найденного значения теряются; точная причина и безопасные замены показаны в .
PK.simplePars(from, to, input, index)
Возвращает текст после выбранного вхождения from и до ближайшего следующего to. Границы чувствительны к регистру.
from, to, input: string; index: number — положительный номер вхождения, начиная с 1.
Найденная строка; при обычной отсутствующей границе — пустая строка.
Указывайте четвёртый аргумент явно
Текущий исполнитель принимает вызов с тремя аргументами, но подставляет внутренний номер 0, из-за чего результат пуст. Для первого совпадения передавайте 1, для второго — 2. Не полагайтесь на подразумеваемое значение.
Особые границы |FIRSTCHAR| и |LASTCHAR|, выбор вхождения и опасный случай отсутствующей начальной границы описаны в .
PK.regexPars(input, group, expression)
Находит все совпадения регулярного выражения и возвращает выбранную группу каждого совпадения отдельной строкой.
input: string; group: number — 0 для полного совпадения или номер группы; expression: string — выражение.
Многострочная строка совпадений; если их нет — пустая строка. Неверное выражение или группа вызывает ошибку.
Обратная косая черта в строке JavaScript записывается дважды, поэтому выражение \d+ передано как "\\d+". Выбор полной и захваченной группы разобран в .
Замена и соединение
PK.replaceStr(from, to, input)
Заменяет все точные вхождения from на to с учётом регистра.
from: string — искомая часть; to: string — замена; input: string — исходный текст.
Новая строка. Исходная переменная не меняется; отдельного режима без учёта регистра этот метод не предоставляет.
Точная замена и отличие от шаблона показаны в .
PK.regexReplace(expression, to, input)
Заменяет каждое полное совпадение регулярного выражения строкой to.
expression, to, input: string. Обратные косые черты выражения требуется экранировать для JavaScript.
Новая строка; отсутствие совпадений возвращает исходный текст. Неверное выражение вызывает ошибку.
Метод объекта PK не принимает номер группы и всегда заменяет полное совпадение. Возможности общей операции и правила групп показаны в .
PK.regexGlue(input)
Построчно соединяет несколько готовых результатов |REGEX|[n]. Метод не выполняет новое регулярное выражение.
input: string — чередование «номер, разделитель, номер», например "1, = ,2".
Многострочная строка, собранная по позициям первого списка. Запятая не может входить в разделитель.
Поведение списков разной длины и цепочка из нескольких парсеров описаны в .
PK.simpleGlue(input)
Добавляет один и тот же текст в конец каждой строки готового результата |REGEX|[n].
input: string — номер парсера, первая запятая и окончание, например "2, — готово".
Многострочная строка с добавленным окончанием. Следующие запятые остаются частью окончания.
Метод только дописывает окончание и не ставит текст перед строкой. Полный пример приведён в .
PK.escJSON(input)
Превращает произвольный текст во внутреннее содержимое строки JSON: экранирует кавычки, обратные косые черты, переводы строк, табуляцию и управляющие знаки, но не добавляет внешние кавычки.
input: string — одно строковое значение, а не готовый объект JSON.
Экранированное содержимое без внешних кавычек.
Почему нельзя передавать готовый объект целиком, показано в .
Регистр, края и позиции
PK.random(alphabet, len, len2)
Создаёт строку, независимо выбирая каждый знак из alphabet.
alphabet: string; len, len2: number — целые границы длины.
Случайная строка. При разных границах нижняя входит в диапазон, верхняя не входит; одинаковые границы задают точную длину.
Пустой набор и неверные границы не входят в договор; результат не предназначен для паролей и ключей. Подробности приведены в .
PK.lower(input)
Переводит буквы во всей строке в нижний регистр по правилам Windows; цифры и знаки не меняются.
input: string.Правила регистра описаны в .
PK.upper(input)
Переводит буквы во всей строке в верхний регистр по правилам Windows.
input: string.Границы операции описаны в .
PK.fupper(input)
Переводит в верхний регистр только первую единицу строки; остальной текст не меняется.
input: string.Метод не приводит остальные буквы к нижнему регистру. Примеры приведены в .
PK.removenum(input)
Удаляет каждый знак от 0 до 9; похожие цифровые знаки других письменностей сохраняются.
input: string.Точный состав удаляемых знаков указан в .
PK.fdspace(input)
Последовательно удаляет пробельные знаки с начала обычной непустой строки.
input: string.Строка только из пробелов не обязана стать пустой: выполнение прекращает удаление, когда остаются два знака. Это ограничение разобрано в .
PK.edspace(input)
Удаляет с конца пробелы, табуляцию и переводы строк.
input: string.Крайний случай пробельной строки описан в .
PK.length(input)
Возвращает длину строки как количество кодовых единиц UTF-16, причём результат записан строкой.
input: string.string с десятичным числом; некоторые эмодзи занимают две единицы.Различие видимого символа и UTF-16 объяснено в .
PK.getChar(input, index)
Возвращает кодовую единицу UTF-16 по положительному номеру, начиная с 1.
input: string; index: number — целое число от 1 до Number(PK.length(input)).
Строка из одной единицы UTF-16; неверный номер возвращает пустую строку.
Метод нельзя безопасно применять к видимым эмодзи по одному номеру. Причина показана в .
Списки строк
PK.demptystr(input)
Удаляет пустые строки и строки, состоящие только из пробельных знаков; пробелы внутри непустой строки сохраняются.
input: string — многострочный текст.Полный многострочный пример приведён в .
PK.dupDel(input)
Сортирует строки по возрастанию и удаляет точные повторы с учётом регистра. Исходный порядок не сохраняется.
input: string — многострочный список.Если нужно сохранить первое вхождение, этот метод не подходит. Подробности указаны в .
PK.getLine(input, line)
Возвращает строку по положительному номеру, начиная с 1.
input: string; line: number — целый номер от 1.Ноль и нечисловые значения не входят в договор, даже если текущее выполнение иногда принимает их за первую строку. Точная граница описана в .
PK.getCount(input)
Возвращает количество строк как десятичную строку. Пустая строка между двумя непустыми тоже считается элементом.
input: string — многострочный список.string с количеством строк.Для подсчёта только непустых строк сначала вызовите demptystr. Состав элементов объяснён в .
PK.filterLines(input)
Удаляет из SOURCE строки, совпавшие со списком STOP. Все пять полей обязательны и располагаются строго в показанном порядке.
input: string с полями SOURCE, STOP, MATCH, CASE, EMPTYLINES.
Отфильтрованные строки. Пропуск, перестановка или неверное значение поля вызывает ошибку.
MATCH принимает exact или contains, CASE — sensitive или insensitive, EMPTYLINES — keep или drop. Влияние пустой строки из STOP описано в .
PK.sortLines(input)
Сортирует SOURCE как текст или числа с сохранением взаимного порядка равных строк.
input: string с полями SOURCE, MODE, DIRECTION, необязательным по режиму CASE и EMPTYLINES.
Отсортированные строки. Набор и порядок полей зависят от MODE; неверная форма вызывает ошибку.
Для lexical поле CASE обязательно, для numeric оно запрещено. Допустимая запись числа и положение пустых строк разобраны в .
Серверный сценарий
PK.script(input)
Отправляет запрос GET на сервер, адрес и порт которого заданы в настройках Private Keeper. input добавляется к адресу после /; это сетевой запрос, а не выполнение JavaScript из строки.
input: string — путь и параметры без начального /. Специальные знаки адреса заранее кодируются вызывающим кодом.
Текст ответа без конечных пробельных знаков либо строка, начинающаяся с Synapse System Error - , при ошибке соединения.
Не добавляйте начальный / и не считайте строку сетевой ошибки нормальным ответом прикладного сценария. Настройки адреса, обработка пробелов и точная форма запроса описаны в .