C# 中的 URL Slugify 算法?

2023-11-21

所以我搜索并浏览了slug标记 SO 并只找到两个引人注目的解决方案:

  • C# 中的 Slugify 和字符转写
  • 如何在 C# 中将上标或下标转换为普通文本

这只是问题的部分解决方案。我可以自己手动编写代码,但令我惊讶的是还没有解决方案。

那么,C# 和/或 .NET 中是否有一个 slugify 算法实现可以正确解决拉丁字符、unicode 和各种其他语言问题?


http://predicatet.blogspot.com/2009/04/improved-c-slug-generator-or-how-to.html

public static string GenerateSlug(this string phrase) 
{ 
    string str = phrase.RemoveAccent().ToLower(); 
    // invalid chars           
    str = Regex.Replace(str, @"[^a-z0-9\s-]", ""); 
    // convert multiple spaces into one space   
    str = Regex.Replace(str, @"\s+", " ").Trim(); 
    // cut and trim 
    str = str.Substring(0, str.Length <= 45 ? str.Length : 45).Trim();   
    str = Regex.Replace(str, @"\s", "-"); // hyphens   
    return str; 
} 

public static string RemoveAccent(this string txt) 
{ 
    byte[] bytes = System.Text.Encoding.GetEncoding("Cyrillic").GetBytes(txt); 
    return System.Text.Encoding.ASCII.GetString(bytes); 
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 中的 URL Slugify 算法? 的相关文章

随机推荐

  • lambda - 用户无权执行:cognito-idp:ListUsers

    当我在 Lambda 中测试期间尝试获取用户池中的所有用户时 遇到以下错误 errorType AccessDeniedException errorMessage User arn aws iam 123456789 user xxxxx
  • 空字符串和单个分隔符字符串上的字符串拆分行为

    这是后续这个问题 问题在下面第二行 split x returns ok x split x returns but shouldn t it return because it s the string before x xa split
  • 如何使用 Serde 从原始结构的 JSON 反序列化结构的子字段?

    我想要拥有Test team size属性从数据反序列化Test对象本身 derive Debug Serialize Deserialize struct TeamSize pub min i64 pub max i64 derive D
  • 模态未设置时的 UINavigationBar 外观

    我在 appDelegate 中使用以下代码来设置整个应用程序中 UINavigationBar 和状态栏的外观 UINavigationBar appearance setTintColor UIColor whiteColor UINa
  • 在ggplot2中添加条形之间的空间

    我想在 ggplot2 中的条形之间添加空格 此页面提供了一种解决方案 http www streamreader org stats questions 6204 how to increase the space Between the
  • 你能强制 ImageMagick 使用 PNG-8 alpha 透明度吗?

    当我尝试通过 Imagemagick 运行一堆具有 alpha 透明度的 PNG 8 图像时 它会将它们转换为 PNG 32 从而大大增加了文件大小 是否可以强制 Imagemagick 将我的图像类型保留为 8 位 PNG 你可以这样做
  • 失败时自动再次尝试 AJAX 请求

    我看到你可以指定如果 ajax 请求失败一般要做什么 是否可以让它在某种循环中重试 以便它在停止之前至少尝试 x 次 我之前使用过这段代码 ajaxSetup error function alert error 这将适用于所有 AJAX
  • 在 5.0 中打开项目后无法在 Xcode 4.6 中打开项目

    我在 Xcode 5 中打开了错误版本的项目 现在 Xcode 4 6 在尝试打开该项目时崩溃了 我只在 Xcode 5 中更改了一个 xib 文件 并使用 Xcode 5 在 IB 中打开了 xib 并在 Interface Builde
  • MATLAB 中的 SVM 可视化

    在 Matlab 中执行 SVM 训练后 如何可视化 SVM 分类 到目前为止 我只用以下方法训练了 SVM Labels are 1 or 1 groundTruth Ytrain d xtrain model svmtrain grou
  • 如何创建 JSON 数组?

    你好 我想创建一个 JSON 数组 我尝试过使用 JSONArray jArray new JSONArray while itr hasNext int objId itr next jArray put objId odao getOb
  • 带参数的 Java Webstart

    我可以启动一个Java网络启动具有一组参数的应用程序就像使用 标签配置小程序一样 Thanks 是的 您可以 下面显示了一个示例
  • HTML5/JS - 启动多个网络工作者

    我目前正在编写一个程序 我必须处理巨大的数组 但是我可以拆分这些数组 我现在的计划是 在不同的网络工作者中处理数组 然而 我从未与他们合作过 并且确实有几个问题 1 我将如何运行多个网络工作者 我尝试了一个看起来像这样的 for 循环 fo
  • Angular 如何测试@HostListener

    我有以下指令 当应用于输入元素时 它会检查字符并在禁止字符时调用 PreventDefault Directive selector cdtPreventInput export class PreventInputDirective im
  • 从google帐户获取用户名、头像

    我正在开发一个使用 GoogleAccountCredential 登录 上传和下载文件到 GoogleDrive 的模块 我想让谷歌帐户的用户名 姓氏和头像显示在我的登录功能上 I ve try GoogleAccountCredenti
  • 使 ASP.NET WCF 将字典转换为 JSON,省略“Key”和“Value”标签

    这是我的困境 我正在使用 RESTful ASP NET 服务 尝试获取一个函数来返回以下格式的 JSON 字符串 Test1Key Test1Value Test2Key Test2Value Test3Key Test3Value 但我
  • Python变量是指针吗?或者说,它们是什么?

    据我所知 Python 中的变量只是指针 根据这条规则 我可以假设此代码片段的结果 i 5 j i j 3 print i 将会3 但我得到了一个令我意想不到的结果 那就是5 此外 我的 Python 书确实介绍了这个示例 i 1 2 3
  • 不需要的双导航栏

    当我点击屏幕时 我使导航栏 顶部栏 出现 消失 并且也位于背景图像的顶部 它有效 但有一个问题 我突然有两个导航栏 首先 有一个名为 后退 的后退按钮 当我按 后退 时 它会弹出一个新的导航栏 其中有一个名为 Vinene 的后退按钮 这是
  • glClear(GL_COLOR_BUFFER_BIT) 后 OpenGL 无效帧缓冲区操作;

    每次我打电话后glClear GL COLOR BUFFER BIT 我收到 OpenGL 错误 无效的帧缓冲区操作 通话似乎工作正常 没有任何问题 我打电话glClear GL COLOR BUFFER BIT 第一件事在 paintGL
  • 这个规范的集群示例是如何工作的?

    当必须通过文件系统同步程序 shell脚本 时 我发现了一种flock基于的解决方案是受到推崇的 也应该工作on NFS 在脚本中使用的规范示例 来自http linux die net man 1 flock is flock s 200
  • C# 中的 URL Slugify 算法?

    所以我搜索并浏览了slug标记 SO 并只找到两个引人注目的解决方案 C 中的 Slugify 和字符转写 如何在 C 中将上标或下标转换为普通文本 这只是问题的部分解决方案 我可以自己手动编写代码 但令我惊讶的是还没有解决方案 那么 C