The goal is to remove 4 tabs in front in each line with the use of JS.
Current String:
.mockuptext{
max-width: 40%;
min-width: 150px;
max-height: 70%;
margin: 3rem;
padding: calc(1rem + 30px) 1.5rem 1rem 1rem;
}
Desired String:
.mockuptext{
max-width: 40%;
min-width: 150px;
max-height: 70%;
margin: 3rem;
padding: calc(1rem + 30px) 1.5rem 1rem 1rem;
}
There are possibly multiple ways of doing this. Since you did not share the context/use-case of of this problem, I am assuming that you already have a means of accessing the string and storing it in a variable. If you have that, you can refer to the code below.
You can use regular expressions to find and replace occurrences of 4 tabs at the beginning of each line.
The Regex that I am using to match 4 tabs at the beginning of each line is \^\t{4}\gm:
gm flag at the end of the regex stands for global (i.e. return all matches, not just the first one) and multiline; the multiline flag tells the regex matcher to perform the match at each line instead of the beginning of the string.^ matches the beginning of the line\t{4} matches 4 tab characters.To actually modify the string, I am using the replace method. which takes a regex and replaces all matches of the regex with the second argument of the method.
let s = `\
\t\t\t\t.mockuptext{\n
\t\t\t\t\tmax-width: 40%;\n
\t\t\t\t\tmin-width: 150px;\n
\t\t\t\t\tmax-height: 70%;\n
\t\t\t\t\tmargin: 3rem;\n
\t\t\t\t\tpadding: calc(1rem + 30px) 1.5rem 1rem 1rem;\n
\t\t\t\t}\n
`;
console.log(s);
console.log(s.replace(/^\t{4}/gm, ""))
You can also create a function to encapsulate the wrapping like:
function replace4Tabs(s) {
return s.replace(/^\t{4}/gm, "")
}
and if you have an html element that you want to update, you can use
elem.innerHTML = replace4Tabs(elem.innerHTML);
PS: If you are new to Regex, I have found Regex101 to be a great resource. It will highlight matches as you type and provide an explanation of how Regex is matching https://regex101.com/r/7SxOEM/1