首页 > 解决方案 > 正则表达式计算文本缩进中空格和制表符的数量

问题描述

我正在尝试找到一个 RegEx 解决方案,让我计算标签按和空格键按文本缩进的次数。它应该支持计数以下场景:

\t\t欢迎来到Hello World(2 tab press)

\s\s\s\s\t欢迎来到 Hello World(4 space and one tab)

\s\s\t\s\s\t欢迎来到 Hello World(combinations of repeated space and tabs)

\t\s\s欢迎来到Hello World(one tab 2 spaces)

标签: javascriptregexstring

解决方案


如果您想为此使用 JavaScript 正则表达式,计算出现次数的一种方法是比较替换各种空白字符之前和之后的字符串长度,例如

var input = "    \tWelcome to Hello World";
input = input.replace(/^(\s+).*$/, "$1");
var num_spaces = input.length - input.replace(/[ ]/g, "").length;
var num_tabs = input.length - input.replace(/\t/g, "").length;
console.log("There are " + num_spaces + " spaces.");
console.log("There are " + num_tabs + " tabs.");

上述代码片段中的第二行删除了出现在初始空白字符簇之后的所有文本。


推荐阅读