在javascript中生成SEO友好的URL
我有一个PHP函数,可以将URL转换为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
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连接失效