检查一个字符串是否包含另一个字符串的方法

33

我想检查字符串b是否完全包含在字符串a中。
我尝试过:

var a = "helloworld";
var b = "wold";
if(a.indexOf(b)) { 
    document.write('yes'); 
} else { 
    document.write('no'); 
}

输出是yes,这不是我预期的输出,因为字符串b(wold)没有完全包含在字符串a(helloworld)中 --- wold v.s. world。

有什么建议可以检查该字符串吗?


6个回答

9

阅读文档:MDC String.indexOf :)

indexOf 返回匹配项的索引。这可能是 0(表示“在字符串开头找到”),而 0 是一个伪值

如果未找到目标字符串,则 indexOf 将返回 -1(-1 是一个真值)。因此,测试逻辑需要根据这些返回代码进行调整。字符串已找到(在开头或其他位置):index >= 0index > -1index != -1;字符串未找到:index < 0index == -1

祝编程愉快。


4
您需要使用if(a.indexOf(b) > -1)。 当查找不到字符串时,indexOf将返回-1

3

.indexOf会在没有找到匹配项时返回-1,这是一个真值。你需要更明确地检查:

if (a.indexOf(b) != -1)

0
你需要测试结果是否为-1。-1表示没有匹配,但在布尔意义上评估为真。
var a = "helloworld";
var b = "wold";
if(a.indexOf(b) > -1) { 
  document.write('yes'); 
} else { 
  document.write('no'); 
}

0

这是因为indexOf在未找到值时返回-1:

if(a.indexOf(b) != -1) {

0

你可能想要使用这个

if(a.indexOf(b) != -1)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接