javascript - 格式化字符串以利于 SEO

标签 javascript jquery format-string

我有一个像这样的字符串

Deser't  - & Fest !

如何格式化这个字符串是搜索引擎优化友好的,就像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 ,或类似 jQuery 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);

关于javascript - 格式化字符串以利于 SEO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60413142/

相关文章:

javascript - 只匹配数字、逗号和点,忽略空格

c - printf 以多个指针作为 C 中的参数

shell - 如何让 printf 生成 "+ 123"而不是 "+123"?

javascript - 在js加载的元素之上绘制元素

javascript - Kineticjs 组图像拖动

javascript - 像 12,345,678,900 这样的字符串的正则表达式模式?

javascript - 如何检测用户没有声音并在 Html5 和 Javascript 中运行下一个音频文件

javascript - 填充命令不起作用,我无法在各部分之间留出空格

JavaScript - 将两个 JSON 请求组合成一个对象

c - 为什么格式字符串中 %p 和 %x 的格式不同?