Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

To obtain all headers in a markdown string using Regex, you can use the following pattern:

/^#+\s(.+)/gm

Explanation of the pattern:

  • ^ matches the start of a line.
  • #+ matches one or more hash symbols (#) that denotes the header level.
  • \s matches any whitespace character after the hash symbols.
  • (.+) matches any characters after the whitespace character 1 or more times and captures it.
  • gm are the flags that indicate to match globally and multiline; g flag is used to match all instances instead of stopping at the first match, and m flag is used to match with multiple lines.

Using this pattern in JavaScript, you can get all the headers by using the match() function on the markdown string like this:

const markdownString = "# Header 1\n## Header 2\n### Header 3\n#### Header 4";

const headerPattern = /^#+\s(.+)/gm;
const headers = markdownString.match(headerPattern);

console.log(headers); // Output: ["Header 1", "Header 2", "Header 3", "Header 4"]

This will give you an array of all the headers present in the markdown string.