您也可以使用此JavaScript功能状态正佳代蛞蝓的(这一个是基于/来自Django复制):
function makeSlug(urlString, filter) {
// Changes, e.g., "Petty theft" to "petty_theft".
// Remove all these words from the string before URLifying
if(filter) {
removelist = ["a", "an", "as", "at", "before", "but", "by", "for", "from",
"is", "in", "into", "like", "of", "off", "on", "onto", "per",
"since", "than", "the", "this", "that", "to", "up", "via", "het", "de", "een", "en",
"with"];
}
else {
removelist = [];
}
s = urlString;
r = new RegExp('\\b(' + removelist.join('|') + ')\\b', 'gi');
s = s.replace(r, '');
s = s.replace(/[^-\w\s]/g, ''); // Remove unneeded characters
s = s.replace(/^\s+|\s+$/g, ''); // Trim leading/trailing spaces
s = s.replace(/[-\s]+/g, '-'); // Convert spaces to hyphens
s = s.toLowerCase(); // Convert to lowercase
return s; // Trim to first num_chars characters
}
应该迁移到[meta](http://meta.stackoverflow.com);因为问题和答案都具体处理SO实施,并且接受的答案来自@JeffAtwood。 – casperOne 2011-11-18 20:21:28
@casperOne你认为杰夫不被允许一些非元的声誉?问题是关于“如何做这样的事情”,而不是“这里做得如何”。 – 2011-11-19 13:05:32
@PaŭloEbermann:这不是关于杰夫获得一些非meta的声誉(他有多少声望真的不是我关心的);问题主体*特别引用了StackOverflow的实现*因此它的基本原理是meta。 – casperOne 2011-11-22 14:04:12