【发布时间】:2018-04-13 12:26:52
【问题描述】:
我追求的是一个纯粹的 bash 解决方案来“slugify”一个变量,它不像我的那么难看。
slugify:小写,缩短为 63 字节,除了 0-9 和 a-z 替换为 -。没有前导/尾随 -。结果是一个适合在 URL 主机名和域名中使用的字符串。 输入很可能是一系列带有不想要的字符的单词,例如:
'Effrafax_mUKwT'uP7(Garkbitg@'k'
蛞蝓看起来像: 'effrafax-mukwt-up7-garkbit-1-njrjhactar-s-h-x-olazlarl-zss-c9-q'
slugify () {
next=${1//+([^A-Za-z0-9])/-}
next=${next:0:63}
next=${next,,}
next=${next#-}
next=${next%-}
echo $next
}
还有为什么${next//^-|-$} 不去掉前缀和后缀'-'?其他建议?
【问题讨论】:
-
你能提供一个这样的示例 URL 来测试吗?
-
发布输入条目和预期输出将增加您获得快速帮助的机会
标签: bash slug parameter-expansion