在javascript中生成SEO友好的URL

在javascript中生成SEO友好的URL,javascript,regex,Javascript,Regex,我有一个PHP函数,可以将URL转换为SEO友好的URL: function seo_url($input){ $input = str_replace(array("'", "-"), "", $input); //remove single quote and dash $input = mb_convert_case($input, MB_CASE_LOWER, "UTF-8"); //convert to lowercase $input = preg_re

我有一个PHP函数,可以将URL转换为SEO友好的URL:

function seo_url($input){
     $input = str_replace(array("'", "-"), "", $input); //remove single quote and dash
     $input = mb_convert_case($input, MB_CASE_LOWER, "UTF-8"); //convert to lowercase
     $input = preg_replace("#[^a-zA-Z0-9]+#", "-", $input); //replace everything non an with dashes
     $input = preg_replace("#(-){2,}#", "$1", $input); //replace multiple dashes with one
     $input = trim($input, "-"); //trim dashes from beginning and end of string if any
     return $input;
}

我知道SEO对javascript中的URL这样做是毫无意义的,但为了一致性,我希望URL在我的应用程序中显示相同。有人在javascript中有这个功能吗<代码>:]

看看这个javascript模块(我是作者),它在浏览器和服务器/节点中工作

希望这有帮助
var url=“埃文斯顿,美国披萨食品、葡萄酒和音乐协会,47531”;
document.write(ToSeoUrl(url));
函数toseurl(url){
//将url设置为小写
var encodedUrl=url.toString().toLowerCase();
//替换为和(&A)
encodedUrl=encodedUrl.split(/\&+/).join(“-和-”)
//删除无效字符
encodedUrl=encodedUrl.split(/[^a-z0-9]/).join(“-”);
//删除重复项
encodedUrl=encodedUrl.split(+/-).join(“-”);
//修剪前导字符和尾随字符
encodedUrl=encodedUrl.trim('-');
返回编码durl;

} /代码> < p>将不同的解决方案组合在一起,请考虑此替代代码,一个线性:

function toSeoUrl(url) {
    return url.toString()               // Convert to string
        .normalize('NFD')               // Change diacritics
        .replace(/[\u0300-\u036f]/g,'') // Remove illegal characters
        .replace(/\s+/g,'-')            // Change whitespace to dashes
        .toLowerCase()                  // Change to lowercase
        .replace(/&/g,'-and-')          // Replace ampersand
        .replace(/[^a-z0-9\-]/g,'')     // Remove anything that is not a letter, number or dash
        .replace(/-+/g,'-')             // Remove duplicate dashes
        .replace(/^-*/,'')              // Remove starting dashes
        .replace(/-*$/,'');             // Remove trailing dashes
}

encodedUrl=encodedUrl.trim('-')
不会从字符串的开头/结尾删除
-
,因为
没有任何参数。trim()
没有任何参数。先生,您是救生员简单-易于使用,工作没有问题。谢谢!:)@pid连接失效