【问题标题】:Javascript Slug Generation Function Giving Improper OutputJavascript Slug 生成函数给出不正确的输出
【发布时间】:2019-06-13 13:55:35
【问题描述】:

我在 jquery 中使用下面的函数来生成 URL slug

var text = $("#post_title").val();

var converted = text.toLowerCase().replace(/ /g,'-').replace(/[^\w-]+/g,'');
$("#post_slug").val(converted);

我想创建一个没有任何数值且没有附加 -(连字符)的适当 slug

上面的代码发生了什么

我正在使用以下标题来生成 slug

标题:top 5 ways to get in list

蛞蝓:top-5-ways-to-get-in-list

我想避免 slug 中的数值,所以它应该如下所示

蛞蝓:top-ways-to-get-in-list

另外,如果有任何空格,特别是在结尾处,那么 slug 就变成了,我想避免任何 - 不需要的连字符

蛞蝓:top-ways-to-get-in-list-

我无法弄清楚代码中有什么问题。

【问题讨论】:

    标签: javascript jquery slug


    【解决方案1】:

    function generateSlug(text) {
      return text.trim().toLowerCase()
        .replace(/[0-9]+/g, '')
        .replace(/ +/g, '-');
    }
    
    console.log(generateSlug('Top 5 ways to get in list'));
    console.log(generateSlug('Top 5 ways to get in list5'));
    console.log(generateSlug('Top 5 ways to get in list5 '));
    console.log(generateSlug(' Top 5 ways to get in list '));
    console.log(generateSlug('  Top  5  ways  to  get  in  list  '));

    【讨论】:

    • 如果我使用像 Top 5 ways to get in list5- 这样的字符串,那么我会得到像 top-ways-to-get-in-list5- 这样的 slug
    【解决方案2】:

    不管它是不是一个函数,你都可以在任何 JS 代码上这样做

    var Text = 'Faa fee foo fog   my code has bug' 
          Text = Text.toLowerCase();
          Text = Text.trim();
          Text = Text.replace('/\s/g','-');
          Text = Text.replace(/ +/g,'-');
    

    只需在需要的地方使用文本

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-14
      • 2013-07-30
      • 1970-01-01
      • 2016-05-16
      相关资源
      最近更新 更多