创建SEO友好URI字符串的最佳方法
该方法应仅允许URI字符串中的“ 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-
”字符。
制作好的SEO URI字符串的最佳方法是什么?
这就是普遍的共识:
-
小写字符串。
string = string.toLowerCase();
-
标准化所有字符并去除所有变音标记 (例如,é,ö,à变为e,o,a)。
string = Normalizer.normalize(string, Form.NFD).replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
-
将所有剩余的非字母数字字符替换为
-
并在必要时折叠。string = string.replaceAll("[^\\p{Alnum}]+", "-");
总结如下:
public static String toPrettyURL(String string) { return Normalizer.normalize(string.toLowerCase(), Form.NFD) .replaceAll("\\p{InCombiningDiacriticalMarks}+", "") .replaceAll("[^\\p{Alnum}]+", "-"); }
以下正则表达式将与您的算法完全相同。 我不知道做这类事情的图书馆。
字符串s =输入 .replaceAll(“? - ?”,“ - ”)//删除连字符周围的空格 .replaceAll(“[']”,“ - ”)//将空格和引号转换为连字符 .replaceAll( “[^ 0-9A-ZA-Z-]”, “”); //删除不在我们允许的字符集中的所有内容
如果您想搜索更多信息,这些通常称为“slu”。
您可能想查看其他答案,例如如何从字符串创建SEO友好的划线分隔的URL? 以及如何使Django slugify与Unicode字符串正常工作?
它们比javascript更多地涵盖C#和Python,但是对于slug约定以及制作它们时可能遇到的问题(例如唯一性,unicode规范化问题等)有一些与语言无关的讨论。