Javascript Slug生成函数输出不正确

时间:2019-01-19 15:25:06

标签: javascript jquery slug

我正在jquery中使用以下功能来生成URL子弹

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

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

我想创建一个没有任何数值且没有其他-(连字符)的合适的子段

上面的代码发生了如下情况

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

标题:top 5 ways to get in list

子弹:top-5-ways-to-get-in-list

我想避免数值太长,所以应该像下面这样

子弹:top-ways-to-get-in-list

如果还有特别是结尾的空格,那么该空格就会变成,我想避免使用任何-不需要的连字符

子弹:top-ways-to-get-in-list-

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

2 个答案:

答案 0 :(得分: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  '));

答案 1 :(得分:0)

无论它是否具有功能,您都可以在任何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,'-');

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