[英]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.