// String Util Functions // -------------------------------------------------- // String Replace Function // -------------------------------------------------- @function str-replace($string, $search, $replace: "") { $index: str-index($string, $search); @if $index { @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace); } @return $string; } // String Split Function // -------------------------------------------------- @function str-split($string, $separator) { // empty array/list $split-arr: (); // first index of separator in string $index: str-index($string, $separator); // loop through string @while $index != null { // get the substring from the first character to the separator $item: str-slice($string, 1, $index - 1); // push item to array $split-arr: append($split-arr, $item); // remove item and separator from string $string: str-slice($string, $index + 1); // find new index of separator $index: str-index($string, $separator); } // add the remaining string to list (the last item) $split-arr: append($split-arr, $string); @return $split-arr; } // Str Extract Function // -------------------------------------------------- @function str-extract($string, $start, $end) { $start-index: str-index($string, $start); @if $start-index { $post: str-slice($string, $start-index + str-length($start)); $end-index: str-index($post, $end); @if $end-index { @return str-slice($post, 1, $end-index - 1); } } @return null; } // Str Contains Function // -------------------------------------------------- @function str-contains($string, $needle) { @if (type-of($string) == string) { @return str-index($string, $needle) != null; } @return false; } // URL Encode Function // -------------------------------------------------- @function url-encode($val) { $spaces: str-replace($val, " ", "%20"); $encoded: str-replace($spaces, "#", "%23"); @return $encoded; }