You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets中将文本转换为URL友好名称?

Google Sheets 实现URL友好名称格式转换方案

完全可以实现,以下是两种可直接落地的方案,匹配变音字符替换、&转and、空格换连字符的规则要求。

方案1:内置嵌套函数(无需写代码,开箱即用)

直接在空白列首行(比如处理A列内容就在B1单元格)输入以下公式,按回车后下拉填充即可批量处理整列内容:
=TRIM(REGEXREPLACE(LOWER(REGEXREPLACE(REGEXREPLACE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"ä","ae"),"ö","oe"),"ü","ue"),"Ä","ae"),"Ö","oe"),"Ü","ue"),"ß","ss"),"&","and"),"[^a-zA-Z0-9]+","-")), "^-|-$", ""))

公式处理逻辑:

  • 优先替换德语变音字符(ä/ö/ü/Ä/Ö/Ü/ß)为URL兼容的标准拼写,匹配示例中Mäx→maex的转换要求
  • 将&符号替换为文本and
  • 所有连续的非字母数字字符(包括空格、标点、其他特殊符号)统一替换为单个连字符
  • 默认输出全小写格式,和给出的第一个示例效果完全一致;如果需要保留原文本大小写,直接删掉公式中的LOWER()部分即可
  • 自动清除字符串首尾多余的连字符,避免出现-xxx-这类不符合URL规范的格式

效果验证:

  • 输入Mäx Mustermann GmbH,输出maex-mustermann-gmbh
  • 输入Diesdas& Company,输出diesdasand-company(如果去掉LOWER()则输出Diesdasand-Company,可根据需要调整)

如果需要新增其他特殊字符替换规则,直接在公式的SUBSTITUTE层叠结构中新增对应替换规则即可。

方案2:自定义函数(适合规则多、需要长期维护的场景)

如果需要处理的特殊字符较多,嵌套函数可读性差不好维护,可以用Apps Script写自定义函数,步骤如下:

  • 打开表格后点击顶部菜单栏「扩展程序」→「Apps Script」
  • 在弹出的脚本编辑页删除默认的空函数,粘贴以下代码后点击保存按钮,按提示完成账号授权:
function TO_URLSLUG(input) {
  // 特殊字符映射表,可根据需求自行增删键值对
  const charReplaceMap = {
    'ä': 'ae', 'ö': 'oe', 'ü': 'ue', 'ß': 'ss',
    'Ä': 'ae', 'Ö': 'oe', 'Ü': 'ue',
    '&': 'and',
    'é': 'e', 'è': 'e', 'ê': 'e', 'ë': 'e',
    'á': 'a', 'à': 'a', 'â': 'a',
    'ó': 'o', 'ò': 'o', 'ô': 'o',
    'ú': 'u', 'ù': 'u', 'û': 'u',
    'ñ': 'n', 'ç': 'c'
  };
  // 按映射表替换特殊字符
  let content = input.split('').map(char => charReplaceMap[char] || char).join('');
  // 所有非字母数字字符替换为连字符,合并连续连字符
  content = content.replace(/[^a-zA-Z0-9]+/g, '-');
  // 去除首尾连字符,默认转小写,不需要小写可删除末尾的.toLowerCase()
  return content.replace(/^-|-$/g, '').toLowerCase();
}
  • 回到表格页面,直接在B1单元格输入公式=TO_URLSLUG(A1),按回车后下拉即可批量处理。后续需要新增特殊字符替换规则,只需要在charReplaceMap中添加对应的字符和替换值即可,维护成本更低。

内容的提问来源于stack exchange,提问作者FlorianT.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 13:57:18