2011-05-19 40 views
9

我想检查字符串b是否完全包含在字符串a中。
我想:JavaScript - 检查必须包含另一个字符串的字符串

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

输出是的,这不是我期望的输出,因为字符串B(尔德)没有在字符串完全包含在(的HelloWorld)---沃尔德V.S.世界

任何建议检查字符串?

+0

相关:[方法像JavaScript中的String.contains()](http://stackoverflow.com/questions/1789945/method-like-string-contains-in-javascript) – Bergi 2013-03-23 16:11:01

回答

6

阅读文档:MDC String.indexOf :)

indexOf返回索引号找到了该匹配项。这可能是0(意思是“在字符串的开始处找到”)并且0是falsy value

indexOf如果未找到针,则返回-1(-1是truthy value)。因此,需要调整测试逻辑以使用这些返回码工作。找到的字符串(开头或其他地方):index >= 0index > -1index != -1;未找到字符串:index < 0index == -1

快乐编码。

1

您需要改为使用if(a.indexOf(b) > -1)indexOf返回-1找不到字符串。

1

.indexOf返回-1如果找不到匹配项,这是一个truthy值。你需要更明确地检查:

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

这是因为indexOf返回-1如果值未找到:

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

你可能想用这个

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

您需要测试结果是否为-1。 -1表示不匹配,但在布尔意义上评估为true。

var a = "helloworld"; 
var b = "wold"; 
if(a.indexOf(b) > -1) { 
    document.write('yes'); 
} else { 
    document.write('no'); 
} 
相关问题