在我的博客应用中,用户可以输入任何文本作为其条目的标题,然后根据文本生成URL。
我验证了他们的标题,以确保只包含字母和数字。
如果他们输入类似
的内容Lorem 3 ipsum dolor sit amet
我怎么能生成这个文本的更友好的SEO版本:
Lorem-3-ipsum-dolor-sit-amet
答案 0 :(得分:7)
实际上,这并不像通过大肆替换空间那么简单。您通常也希望将其全部小写并标准化/替换变音符号,例如á,ö,è等无效 URL字符。唯一有效的字符在this Wikipedia page的第二个表中列为“未保留字符”。
以下是这样一个函数的样子:
public static String prettyURL(String string) {
return Normalizer.normalize(string.toLowerCase(), Form.NFD)
.replaceAll("\\p{InCombiningDiacriticalMarks}+", "")
.replaceAll("[^\\p{Alnum}]+", "-");
}
它基本上做了以下几点:
答案 1 :(得分:4)
String s = "Lorem 3 ipsum dolor sit amet"
s = s.replaceAll(" ","-");
答案 2 :(得分:0)
因为它似乎不允许我发表评论。我愿意:
String s = "Lorem 3 ipsum dolor sit amet"
s = s.replaceAll(" ","_");
使用Underscore字符,因为它是一个空格指示器。自从我完成java以来已经有一段时间但是我知道.Net中有一个函数可以清理文件名,因此它对文件系统是安全的。我的许多相同的一般规则适用于URL,所以如果你能在API中找到一个,那么值得一看。