javascript - 如何实现一个函数,当传入一个密集的字符串时返回,否则返回 false?

标签 javascript string function for-loop if-statement

如果字符串以三个或更多结尾,则字符串是密集的!分数。然而,有!除结尾之外的任何地方都会进行标记,从而形成非密集字符串。

我遇到的问题是当有 !在字符串的中间。结果应该是 false,但结果仍然是 true。

我的代码:

function intenseString (str) {
  if (str.slice(-3) !== "!!!") {
    return false;
    } 
  else if(str.slice(str.indexOf("!"))){
    return false;
    }
  else if(str.slice(-3) === "!!!"){
    return true
  }
}

最佳答案

使用indexOf而不是切片字符串:

const strings = ['abc!!!', 'abc!!de', 'abc!']

const intenseString = (str, chars) => str.indexOf(chars) >= 0

console.log(strings.map(x => intenseString(x, '!!!')))

关于javascript - 如何实现一个函数,当传入一个密集的字符串时返回,否则返回 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52771475/

相关文章:

java - 如何确定字符串列表是否包含 null 或空元素

c# - 在 C# 中将整数列表转换为逗号分隔数字字符串的最简单方法是什么

javascript - 在 JavaScript 中将数组作为函数参数传递

javascript - 循环遍历 Javascript 数组

javascript - Azure Application Insights - 在 Javascript 中具有自定义属性的 trackEvent

无法从 scanf 获取字符串的正确输入(作为数组的字符)

c - 在函数中交换两个数组的指针

c++ - 通过类函数返回引用并在 C++ 中返回整个对象?

javascript - JavaScript Minification 不会伤害开源吗?

javascript - Angular : src attribute bug in Iframe directive