帮助:解析函数/padleft
padleft是一个解析函数。帮助:解析函数页列出了所有解析函数的说明。
padleft
从左侧填充字符串。MediaWiki原生支持。
将指定字符串填充到原字符串的左侧,直到达到要求的长度。支持多字节字符(如中文)并确保安全处理Unicode。
也可用于从左侧截取字符串,或重复指定文本
- 官方文档:MediaWiki文档
语法
{{padleft: 原字符串 | 目标长度 | 填充字符串 }}
- 原字符串:需要被填充的字符串
- 目标长度:填充后的总字符数(最大500)
- 填充字符串(可选):用于填充的字符串,默认为"0"
填充时会循环使用填充字符串直到达到目标长度。如果原字符串已长于目标长度,则不做任何处理。
示例
- 默认填0
{{padleft: xyz | 5 }}
→ 00xyz - 中文填充
{{padleft: 啊哈 | 5 | 填充 }}
→ 填充填啊哈 - 超长原文
{{padleft: 这个字符串太长了 | 5 | 填 }}
→ 这个字符串太长了 - 截断填充
{{padleft: | 3 | abcde }}
→ abc - 重复输出
{{padleft: | {{#expr:{{#len: abc }} * 3 }} | abc }}
→ abcabcabc
更多示例
{{padleft: 啊哈 | 5 | 填<span>充</span> }}
→ 填<s啊哈 (允许的html标签可用){{padleft: 啊哈 | 17 | 填<span>充</span> }}
→填<span>充</span>啊哈
→ 填充啊哈 (允许的html标签可用){{padleft: 啊哈 | 5 | 填<a>充</a> }}
→ 填填填啊哈 (解析器扩展标签会被移除){{padleft: 啊哈 | 1000 | 123456789- }}
→ 123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-12345678啊哈(最大处理长度为500)
底层代码
- 代码逻辑:
- 清理 填充字符串 中的解析标记(Strip marker)
- 检查 填充字符串 是否有效(非空)。无效直接返回原字符串
- 检查 目标长度,限制最大值为500
- 检查 要填充的字符串长度(目标长度 - 原字符串长度) ,小于0直接返回原字符串
- 循环构建要填充的字符串,直到达到目标长度
- 如果填充字符串长度不匹配需求,会截取部分内容
- 拼接到原字符串左侧
实际用例
- 一些Wiki使用了相关特性,如下所示这个静态列表可能在下列页面更改后过时,仅供批判性参考。
碧蓝航线 - blhx
原神 - ys
崩坏:星穹铁道 - sr
代号鸢 - yuan
赛马娘 - umamusume
黑神话:悟空 - wukong
白荆回廊 - bjhl
公主连结 - pcr
无期迷途 - wqmt
孙美琪疑案 - sunmeiqi
交错战线 - crosscore
千年之旅 - elf
StardewValley星露谷物语 - stardewvalley
方舟指令 - fzzl
烟雨江湖 - yanyu
物华弥新 - whmx
超级机器人大战DD - srwdd
咸鱼之王 - xyzwgame
宝可梦大探险 - pq
新怪谈:秘密实验室 - scpsl
小森灵 - xsl0
苍雾残响 - hazereverb406
少前:云图计划 - 42lab
环行旅舍 - kelaiyinshe
突击莉莉终结之弹 - allb
ARGONAVIS - aaside
四叶草剧场 - clover
BangDream!少女乐团派对 - bangdream
美妙世界 - twewy
- Badge
- Badge/Drop
- Data/NEO/Badge
- Data/NEO/Thread
- Image/Badge
- Image/Item
- Image/NEO/Affinity
- Image/NEO/Badge
- Image/NEO/Brand
- Image/NEO/Food
- Image/NEO/Noise
- Image/NEO/Thread
- Image/Noise
- Infobox/Badge
- Infobox/Book
- Infobox/Food
- Infobox/NEO/Badge
- Infobox/NEO/Book
- Infobox/NEO/CD
- Infobox/NEO/Chapter
- Infobox/NEO/Food
- Infobox/NEO/Noise
- Infobox/NEO/Thread
- Infobox/Noise
- Infobox/Shop
- Infobox/Swag
- Infobox/Thread
- Infobox/TWEWY/Badge
- Infobox/TWEWY/Noise
- NEO/Badge
- Row/Evolution
- Row/NEO/Chapter
- Row/NEO/Evolution
- Row/NEO/Graffiti