Этот шаблон реализован на основе
Lua
с использованием функции
pos()
из модуля
String
.
{{
str index
|
текст
|
номер символа
}}
возвращает символ с номером
номер символа
в тексте
текст
.
Номера символов отсчитываются от 1. Пробелы в начале и конце строки обрезаются перед поиском.
Число символов ограничено. Возвращает ошибку, если встречает неизвестный символ или номер больше длины строки.
Примеры
{{
str index
|
8.2.1834 (27.1)
|
10
}}
→ (
{{
str index
|
8.2.1834 (27.1)
|
11
}}
→ 2
{{
str index
|
8.2.1834 (27.1)
|
12
}}
→ 7
{{
str index
|
8.2.1834 (27.1)
|
13
}}
→ .
{{
str index
|
8.2.1834 (27.1)
|
14
}}
→ 1
{{
str index
|
0123456789ABCDEF
|
15
}}
→ E
Технические детали
Замечено, что, к примеру, для реализации функции получения первого символа строки (конкретно — в шаблоне
{{
t
}}
) шаблон
{{
str left
}}
будет вдвое производительней данного (что начинает сказываться на времени загрузки страницы при нескольких сотнях вызовов шаблона).
См. также
Шаблоны обработки строк
По подсчёту
{{
str mid
}}
Выводит подстроку длиной L, начиная с позиции N.
{{
trunc
}}
Выводит символы от начала строки до N или дублирует строку до N символов.
{{
str left
}}
Выводит символы от начала строки до N или дублирует строку до N символов.
{{
str crop
}}
Удаляет с правой стороны строки N символов.
{{
обрезать слева и справа
}}
Удаляет с обеих сторон строки N символов.
{{
str right
}}
Выводит символы от N до конца строки.
{{
str rightc
}}
Выводит правую часть строки из заданного количества символов.
{{
str sub
}}
Удаляет слева N символов и оставляет L.
{{
str sub new
}}
Выбирает из строки подстроку на основе выбранных индексов.
{{
str index
}}
Выводит из строки один символ под номером N.
По проверке
{{
delink
}}
Удаляет из строки вики-ссылки, оставляя их текст.
{{
удалить теги
}}
Удаляет из строки все html-теги, оставляя их содержимое.
{{
удалить префикс файла
}}
Вырезает из названия файла пространство имён.
{{
str trim
}}
Удаляет пробелы справа и слева.
{{
-.
}}
Удаляет из конца строки точку (одну).
{{
-года
}}
Удаляет из строки все вхождения слов «год», «года», «г.» и «гг.».
{{
без кв. скобок
}}
Удаляет из строки крайние парные квадратные скобки.
{{
без начала
}}
Удаляет из строки подстроку, совпадающую с началом строки.
{{
без пунктуации
}}
Удаляет из строки знаки пунктуации.
{{
без символа
}}
Удаляет из строки первое вхождение символа.
Вставка и замена строк
{{
}}
Вставляет подстроку в указанное место строки или приписывает её к концу, если
strloc
<= 0.
{{
multi
}}
Выводит строку указанное количество раз.
{{
replace
}}
Заменяет в строке все включения подстроки.
{{
multireplace
}}
Заменяет в строке несколько символов или групп символов.
{{
без кирлата
}}
Исправляет текст, набранный
смесью визуально неразличимой кириллицы и латиницы
, заменяя латинские буквы идентичными по начертанию кириллическими и наоборот.
{{
str rep
}}
Заменяет в строке указанное количество включений подстроки.
{{
в 2 кв. скобках
}}
Викифицирует первый параметр, если он не викифицирован.
{{
вложенные кавычки
}}
Заменяет в строке все парные кавычки-ёлочки («») на кавычки-лапки („“).
{{
курсив или кавычки
}}
Если строка содержит кириллицу, оборачивает её в кавычки, если латиницу, выделяет курсивом.
{{
курсив или нет
}}
Если строка содержит латиницу, выделяет её курсивом.
{{
локатив
}}
Переводит слова в предложный падеж (препозитив).
{{
в стране
}}
Девикифицирует и переводит в предложный падеж название страны с добавлением предлога.
{{
страна в родительном падеже
}}
Девикифицирует и переводит в родительный падеж название страны.
{{
нр
}}
Переводит видимую часть ссылки в нижний регистр.
{{
первое последним
}}
Делает первое слово строки последним.
{{
сначала имя
}}
Меняет порядок с «Фамилия, Имя Отчество» на «Имя Отчество Фамилия».
{{
год-года-лет
}}
Добавляет к цифровой записи количества лет слово «год», «года» или «лет» в нужном числе и падеже.
{{
+года
}}
Добавляет к последней цифре слово «года».
{{
±.
}}
Добавляет точку к концу произвольного текста, если её там нет.
{{
.±
}}
Делает то же, что и предыдущий, но различает в конце параметра неразрывный пробел.
Анализ строк
{{
str len
}}
Выводит длину строки в символах.
{{
str ≥ len
}}
Проверяет, больше или равна длина строки в символах указанному числу.
{{
str ≤ len
}}
Проверяет, меньше или равна длина строки в символах указанному числу.
{{
str ≠ len
}}
Проверяет, равна ли длина строки в символах указанному числу.
{{
}}
Сравнивает длину строки с заданным числом.
{{
str endswith
}}
Проверяет, заканчивается ли строка указанной подстрокой.
{{
str find
}}
Выводит позицию первого вхождения подстроки в текст.
{{
str sub find
}}
Ищет в строке подстроку с заданным отступом от начала.
{{
is numeric
}}
Проверяет, является ли строка числом.