diff --git a/doc/ru/scripting/extensions.md b/doc/ru/scripting/extensions.md index c8b029ee..8c22c3c9 100644 --- a/doc/ru/scripting/extensions.md +++ b/doc/ru/scripting/extensions.md @@ -180,6 +180,24 @@ string.escape(str: string) -> string Экранирует строку. Является псевдонимом `utf8.escape`. +```lua +string.padding(str: string, size: number, [опционально] char: string) -> string +``` + +Добавляет **char** слева и справа от строки, пока её размер не будет равен **size**. По стандарту **char** равен символу пробела + +```lua +string.left_padding(str: string, size: number, [опционально] char: string) -> string +``` + +Добавляет **char** слева от строки, пока её размер не будет равен **size**. По стандарту **char** равен символу пробела + +```lua +string.right_padding(str: string, size: number, [опционально] char: string) -> string +``` + +Добавляет **char** справа от строки, пока её размер не будет равен **size**. По стандарту **char** равен символу пробела + ## Расширения для math ```lua diff --git a/res/scripts/stdmin.lua b/res/scripts/stdmin.lua index b92708e5..d8ee2bb3 100644 --- a/res/scripts/stdmin.lua +++ b/res/scripts/stdmin.lua @@ -292,6 +292,27 @@ function string.trim_left(s, char) return string.match(s, "^" .. char .. "*(.+)$") or s end +function string.padding(str, size, char) + char = char == nil and " " or char + + local padding = math.floor((size - #str) / 2) + return string.rep(char, padding) .. str .. string.rep(char, padding) +end + +function string.left_padding(str, size, char) + char = char == nil and " " or char + + local left_padding = size - #str + return string.rep(char, left_padding) .. str +end + +function string.right_padding(str, size, char) + char = char == nil and " " or char + + local right_padding = size - #str + return str .. string.rep(char, right_padding) +end + string.lower = utf8.lower string.upper = utf8.upper string.escape = utf8.escape