Sass strings are NOT zero-based arrays. The first character in a Sass string is at index 1, not 0.
For example. the Sass function str-index($string, $substring) returns the position of the first occurrence of $substring in $string. The equivalent JavaScript function is the indexOf(<substring>) method. But given the same arguments, they don't return the same values:
$str-index("hello","h"); //Sass returns 1
"hello".indexOf("h"); //JavaScript returns 0Sass String Functions
The following table lists all string functions in Sass:
| Function | Description | Example |
|---|---|---|
unquote($string) |
Removes the quotes, if any, around a string | unquote("hello") Result: hello |
quote($string) |
Adds quotes to an unquoted string; returns a quoted string unmodified | quote(hello) Result: "hello" quote("hello") Result: "hello" |
str-length($string) |
Returns the number of characters in a string | str-length("hello") Result: 5 |
str-insert($string, $insert, $index) |
Inserts the string specified as $insert at the specified index position inside string | str-insert(" world", "hello", 0) Result: "hello world" |
str-index($string, $substring) |
Returns the index of the first occurrence of $substring inside $string, or null if the string is not found | str-index("Hello", "H") Result: 1 str-index("hello", "H") Result: null |
str-slice($string, $start-at, [$end-at]) |
Returns a substring beginning at position $start-at and optionally ending at position $end-at | str-slice("hello, world", 8) Result: "world" str-slice("hello, world", 8, 9) Result: "wo" |
to-upper-case($string) |
Returns a string containing $string converted to upper case | to-upper-case("hello") Result:"HELLO" |
to-lower-case($string) |
Returns a string containing $string converted to lower case | to-lower-case("Hello") Result: "hello" |