Skip to content

Instantly share code, notes, and snippets.

@jakejarvis
Created August 17, 2021 19:33
Show Gist options
  • Select an option

  • Save jakejarvis/f48bce449392b5ef56db15f28525b46c to your computer and use it in GitHub Desktop.

Select an option

Save jakejarvis/f48bce449392b5ef56db15f28525b46c to your computer and use it in GitHub Desktop.

Revisions

  1. jakejarvis created this gist Aug 17, 2021.
    25 changes: 25 additions & 0 deletions str-split.scss
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,25 @@
    // Returns a list of strings from a given string separated by a given
    // separator (defaults to comma).
    // https://stackoverflow.com/a/65853667/1438024

    @function str-split($str, $delimiter: ",") {
    // return immediately if this function isn't necessary (aka separator not found)
    @if (string.index("#{$str}", "#{$delimiter}") == null) {
    @return $str;
    }

    $str-list: ();

    @while string.index("#{$str}", "#{$delimiter}") != null {
    @if (string.index("#{$str}", "#{$delimiter}") > 1) {
    $str-list: list.append($str-list, string.slice("#{$str}", 1, string.index("#{$str}", "#{$delimiter}") - 1));
    }
    $str: string.slice("#{$str}", string.index("#{$str}", "#{$delimiter}") + 1, string.length("#{$str}"));
    }

    @if (string.slice("#{$str}", 1, string.length("#{$str}")) != "") {
    $str-list: list.append($str-list, string.slice("#{$str}", 1, string.length("#{$str}")));
    }

    @return $str-list;
    }