簡體   English   中英

正則表達式 | 應用函數式編程將字符串轉換為 URL Slug

[英]Regular Expression | Apply Functional Programming to Convert Strings to URL Slugs

問題

填寫 urlSlug function,以便它轉換字符串標題並返回 URL 的帶連字符的版本。您可以使用本節介紹的任何方法,但不要使用替換。 以下是要求:

輸入是一個包含空格和標題大寫單詞的字符串

output 是一個字符串,單詞之間的空格替換為連字符 (-)

output應該全部是小寫字母

output 不應有任何空格。

我的解決方案

 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))

我的問題

我想使用正面和負面的前瞻/后視來解決這個問題:我的特殊問題似乎是字符串是否有多個空格。 可以進行哪些更改才能使這項工作正常進行?

您可以使用量詞+表示一個或多個

 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))

您似乎不需要將字符串拆分為數組。

 const slugify = (input = '') => input.trim().replace(/\s+/g, '-').toLowerCase(); console.log( slugify(" Winter Is Coming "), );


PS:這些操作很容易手動完成,因為有大量的邊緣情況需要處理......

我寧願只安裝https://www.npmjs.com/package/slugify ,它帶有一個不錯且可配置的 API

 console.log( slugify(" Winter is Coming", { lower: true }), );
 <script src="https://cdn.jsdelivr.net/npm/slugify@1.4.0/slugify.js"></script>

無需使用正則表達式即可回答。 使用過濾方法,不需要修剪方法。 使用過濾器可以從列表中刪除空格。 有關過濾器的更多信息可以找到https://www.w3schools.com/jsref/jsref_filter.asp

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM