Skip to content

Instantly share code, notes, and snippets.

@williammalo
Forked from 140bytes/LICENSE.txt
Last active October 5, 2015 00:57
Show Gist options
  • Save williammalo/2727112 to your computer and use it in GitHub Desktop.
Save williammalo/2727112 to your computer and use it in GitHub Desktop.
parse indentation of string

This function returns an array of the indentation level of each line of a string.

I made this as part of a yaml parser I'm trying to do =D

you use it like this:

getIndent("\t\t\ttext\n\tmore text\nnot indented")

and it returns this:

[3,1,0]

function(a,b){
for(a in b=a.split("\n")) //for each line
b[a]=/\t*/.exec(b[a])[0].length; //replace string with indentation level
return b //return the array
}
function(a,b){for(a in b=a.split("\n"))b[a]=/\t*/.exec(b[a])[0].length;return b}
//@maettig's version
function(a,b){b=[];a.replace(/^\t*/gm,function(c){b.push(c.length)});return b}
{
"name": "getIndent",
"description": "Returns an array of the indentation level of each line of a string.",
"keywords": [
"indentation",
"yaml",
"whitespace",
"haml",
"jade"
]
}
<!DOCTYPE html>
<title>Foo</title>
<b id=foo></b>
<script>
foo = document.getElementById("foo")
getIndent = function(a,b){for(a in b=a.split("\n"))b[a]=/\t*/.exec(b[a])[0].length;return b}
foo.innerHTML = getIndent("\t\t\ttext\n\tmore text\nnot indented")
</script>
@williammalo
Copy link
Author

@maettig
ah! very cool!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment