gpt4 book ai didi

css - 用于拆分字符串的 SASS 函数仅在第一次出现时拆分

转载 作者:行者123 更新时间:2023-12-04 08:20:32 26 4
gpt4 key购买 nike

来自 https://stackoverflow.com/a/52375669/1427563 的答案在给定分隔符的情况下,我使用以下递归 SASS 函数将字符串拆分为子字符串列表。例如调用str-split( "0 0 0 0", " ");应该返回列表 ("0","0","0","0") .

@function str-split( $string, $separator: " " ) {
$i: str-index( $string, $separator );
@if $i != null {
@return append(
str-slice( $string, 1, $i - 1 ),
str-split( str-slice( $string, $i + str-length( $separator ) ), $separator )
);
}
@return $string;
}
但是使用字符串 "0 0 0 0" 调用函数和分隔符 " "返回列表 ("0", "0 0 0") .这可以通过检查返回数组的长度来测试。
$sides_arr: str-split( "0 0 0 0", " " );
@debug length( $sides_arr );
> _2-mixins.scss:63 DEBUG: 2
递归调用应确保字符串在所有出现时都被拆分。为什么函数 str-split仅在第一次出现分隔符时拆分?

最佳答案

很高兴你找到了替代品!我才想起这个问题。这是 str_split()功能。

@function str_split($str, $substr) {
$nList: ();

@while str-index("#{$str}", "#{$substr}") != null {
@if (str-index("#{$str}", "#{$substr}") > 1) {
$nList: append(
$nList,
str-slice("#{$str}", 1, str-index("#{$str}", "#{$substr}") - 1)
);
}

$str: str-slice(
"#{$str}",
str-index("#{$str}", "#{$substr}") + 1,
str-length("#{$str}")
);
}

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

@return $nList;
}
例如 str_split(" x x x ", " ")将返回 "x" "x" "x" .
https://codepen.io/LudwigGeorgImmanuel/pen/dypEzGB (可以使用注释掉的 @error语句进行调试)

关于css - 用于拆分字符串的 SASS 函数仅在第一次出现时拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65518846/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com