gpt4 book ai didi

javascript - 如果 JavaScript 字符串以连字符开头,则计算出现次数

转载 作者:行者123 更新时间:2023-11-30 16:50:30 26 4
gpt4 key购买 nike

基本上我有一个这样的字符串数组:

var array = [
'Top level',
'- Sub item',
'-- Child of sub',
'Another top',
'Yet another top',
'- Child',
];

我正在尝试循环每个字符串并检查字符串是否以连字符开头,如果是则计算多少次然后删除。

我可以这样做:

if (string.substring(0, 1) == "-") {
// ...
} else if (string.substring(0, 2) == "--") {
// ...
} else if (string.substring(0, 3) == "---") {
// ...
}

我还没有测试过,但你可以明白这个想法..

我希望有一个更简单的解决方案,也许是正则表达式?有帮助吗?

谢谢。

-- 编辑 --

我需要计算并删除每个字符串中的连字符,因为我有一个文本区域供用户输入带有换行符和连字符的字符串。

文本区域值:

Top level
- Sub item
-- Child of sub
Another top
Yet another top
- Child

然后我将 textarea 值分解成一个数组:

var array = textareaValue.split('\n');

for (var i = 0; i < array.length; i++) {
var this = array[i];
// Now check for hyphens and count how many
// if (hyphens === '-')
// else if (hyphens === '--') ...etc
};

最佳答案

假设您已经通过循环获取“string”(我在下面使用了“val”来消除与其他语言中“string”类型的可能混淆)

val = val.replace(/^-+/, '')

编辑:经过测试,在此用法中无需转义“-”

解释:

  • .replace是所有字符串的方法
  • 使用//允许正则表达式
  • ^ 行首
  • '-'字面量
  • '+'一个或多个

更新:要包括获取计数,您可以:

var matches = val.match("^(-+).*");
length = matches == null ? 0 : matches[1].length;
  • match是所有字符串的方法
  • '^'匹配开始
  • '(' ')'应用一个组,返回匹配的第二个值,即[1]
  • ?: 使用是因为如果没有匹配项,则匹配项将为空

更新以匹配问题的编辑:

var array = textareaValue.split('\n');

for (var i = 0; i < array.length; i++) {
var thisValue = array[i];
// Now check for hyphens and count how many
var matches = thisValue.match("^(-+).*");
var hyphenCount = matches == null ? 0 : matches[1].length;
var fixedValue = thisValue.replace(/^-+/, '')
};

关于javascript - 如果 JavaScript 字符串以连字符开头,则计算出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30598151/

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