regex 正则表达式|应用函数式编程实现字符串到URL插件的转换

igetnqfo  于 2023-01-21  发布在  其他
关注(0)|答案(3)|浏览(64)
    • 问题**

填充urlSlug函数,使其转换字符串标题并返回URL的连字符版本。您可以使用本节介绍的任何方法,但不要使用replace。以下是要求:
输入是包含空格和标题大小写单词的字符串
输出为字符串,单词之间的空格替换为连字符(-)
输出应全部为小写字母
输出不应有任何空格。

    • 我的解决方案**
var globalTitle = " Winter Is  Coming";


function urlSlug(title) {
  let regex = /(?<!\s)\s(?!\s)/g
  
  let a = title
  .toLowerCase()
  .trim()
  .split(regex)
  .join('-')
  return a;
}


console.log(urlSlug(globalTitle))
    • 我的问题**

我想用积极和消极的前瞻性/前瞻性来解决这个问题:我的特殊问题似乎是如果字符串有一个以上的空格。2可以做什么改变来使它工作?

0x6upsns

0x6upsns1#

您可以使用量词+,表示一个或多个

var globalTitle = " Winter Is  Coming";


function urlSlug(title) {
  let regex = /\s+/g
  
  let a = title
  .toLowerCase()
  .trim()
  .split(regex)
  .join('-')
  return a;
}


console.log(urlSlug(globalTitle))
jogvjijk

jogvjijk2#

看起来不需要将字符串拆分为数组。

const slugify = (input = '') => 
  input
    .trim()
    .replace(/\s+/g, '-')
    .toLowerCase()
  ;


console.log(
  slugify(" Winter Is  Coming "),
);

附言:这些操作是非常容易出错的手动完成,因为有吨的边缘案件要处理...

x一个一个一个一个x一个一个二个x

nbewdwxp

nbewdwxp3#

不使用regex也可以回答。使用filter方法,不需要修剪方法。使用filter可以从列表中删除空格。有关filter的更多信息可以在https://www.w3schools.com/jsref/jsref_filter.asp中找到

function urlSlug(urlTitle) {
   .split(" ")
   .filter(substr => substr !== "")
   .join("-")
   .toLowerCase();
  return urlTitle;
  }

相关问题