From 80ba1db8830c557ada0838f3f6e5564de9ace8ef Mon Sep 17 00:00:00 2001 From: Angelos Chalaris Date: Mon, 19 Aug 2024 23:04:41 +0300 Subject: [PATCH] Tipify expand-tabs --- content/snippets/js/s/expand-tabs.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/content/snippets/js/s/expand-tabs.md b/content/snippets/js/s/expand-tabs.md index c208b8acdd1..434e1688232 100644 --- a/content/snippets/js/s/expand-tabs.md +++ b/content/snippets/js/s/expand-tabs.md @@ -1,20 +1,23 @@ --- title: Expand tabs into spaces -type: snippet +type: tip language: javascript tags: [string,regexp] cover: naming-conventions -excerpt: Convert tabs to spaces, where each tab corresponds to `count` spaces. +excerpt: Convert tabs to spaces, allowing you to control the number of spaces each tab corresponds to. listed: true -dateModified: 2020-09-15 +dateModified: 2024-08-08 --- -Convert tabs to spaces, where each tab corresponds to `count` spaces. +Tabs vs. spaces is a long-standing debate in the programming community. I don't feel like getting into that debate, but I can help you convert tabs to spaces in JavaScript. -- Use `String.prototype.replace()` with a regular expression and `String.prototype.repeat()` to replace each tab character with `count` spaces. +This entire exercise is a simple matter of **replacing each tab character** with a certain number of spaces. You can **control the number of spaces** each tab corresponds to via the `count` argument, allowing you to customize the output to your liking. + +Simply put, using `String.prototype.replace()` with a **regular expression** and `String.prototype.repeat()` will do the trick. The regular expression `/\t/g` matches all tab characters in the string, which are then replaced with `count` spaces. ```js const expandTabs = (str, count) => str.replace(/\t/g, ' '.repeat(count)); -expandTabs('\t\tlorem', 3); // ' lorem' +expandTabs('\t\tlorem', 3); +// ' lorem' ```