0

我正在 javascript 中对 coderbyte 进行编码挑战。问题是:使用 JavaScript 语言,让函数 ABCheck(str) 接受传递的 str 参数,如果字符 a 和 b 在字符串中的任意位置至少被 3 个位置分隔至少一次(即。 "lane borrowed" 将导致 true,因为 a 和 b) 之间正好有三个字符。否则返回字符串 false。

这是我提出的答案,但它不起作用。我不知道为什么......在很多答案中,人们都将字符串转换为数组,但有没有办法用 .charAt() 做到这一点?谢谢!

function ABCheck(str) {
    for (var i=0; i < str.length-4; i++){
        if ((str.charAt(i) == "a") && (str.charAt(i+4) == "b")){
            return true;
        }
    }
};

我已经更正了字符串与 str 的混淆以及 str.length 之后的“-4”。我仍然遇到以下情况的问题。“after it”、“aaaaddddd”和“123advb。它们都应该是假的。我该怎么做?再次感谢。

4

2 回答 2

0

这似乎有点工作,你只是有一个错字:

string.charAt(i+4)应该是str.charAt(i+4)

小提琴:http: //jsfiddle.net/chucknelson/UE5rS/

于 2014-02-26T01:47:55.850 回答
0

是的,你也可以使用正则表达式。这是假设 b 总是跟随 a。

function ABCheck(str)
{
    return str.match(/a...b/g) != null;
}
于 2014-02-26T02:26:25.733 回答