SEO 友好的格式字符串
Format String for SEO friendly
我有一个像
这样的字符串
Deser't - & Fest !
如何格式化此字符串是 seo 友好的,如 Desert-Fest
。
在php我用的是上面的函数
function cleanString($str, $separator = "-"){
$q_separator = preg_quote($separator);
$trans = array(
'&.+?;' => '',
'[^a-z0-9 _-]' => '',
'\s+' => $separator,
'('.$q_separator.')+' => $separator
);
$str = strip_tags($str);
foreach ($trans as $key => $val){
$str = preg_replace("#".$key."#i", $val, $str);
}
$str = strtolower($str);
return trim($str, $separator);
}
如何在 Jquery 中执行此操作?
谢谢。
一半的解决方案是HTML-解码输入中的实体。这可以在 JS 中完成,例如 this, or jQuery like this.
从那里您可以使用正则表达式从结果字符串中删除您不需要的任何字符,如下所示:
function htmlDecode(input) {
var e = document.createElement('textarea');
e.innerHTML = input;
return e.childNodes.length === 0 ? "" : e.childNodes[0].nodeValue;
}
let input = "Deser't - & Fest !";
let output = htmlDecode(input);
output = output.replace(/[^a-z-]/gi, ''); // remove anything that isn't a-Z or -
console.log(output);
我有一个像
这样的字符串Deser't - & Fest !
如何格式化此字符串是 seo 友好的,如 Desert-Fest
。
在php我用的是上面的函数
function cleanString($str, $separator = "-"){
$q_separator = preg_quote($separator);
$trans = array(
'&.+?;' => '',
'[^a-z0-9 _-]' => '',
'\s+' => $separator,
'('.$q_separator.')+' => $separator
);
$str = strip_tags($str);
foreach ($trans as $key => $val){
$str = preg_replace("#".$key."#i", $val, $str);
}
$str = strtolower($str);
return trim($str, $separator);
}
如何在 Jquery 中执行此操作?
谢谢。
一半的解决方案是HTML-解码输入中的实体。这可以在 JS 中完成,例如 this, or jQuery like this.
从那里您可以使用正则表达式从结果字符串中删除您不需要的任何字符,如下所示:
function htmlDecode(input) {
var e = document.createElement('textarea');
e.innerHTML = input;
return e.childNodes.length === 0 ? "" : e.childNodes[0].nodeValue;
}
let input = "Deser't - & Fest !";
let output = htmlDecode(input);
output = output.replace(/[^a-z-]/gi, ''); // remove anything that isn't a-Z or -
console.log(output);