我想检查字符串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.世界
有任何检查字符串的建议吗?
答案 0 :(得分:7)
阅读文档:MDC String.indexOf:)
indexOf
返回找到匹配项的索引。这可能是0(表示“在字符串的开头找到”),0是falsy value。
indexOf
将返回-1(并且-1为truthy value)。因此,需要调整测试逻辑以使用这些返回码。找到字符串(在开头或其他地方):index >= 0
或index > -1
或index != -1
;找不到字符串:index < 0
或index == -1
。
快乐的编码。
答案 1 :(得分:1)
您需要使用if(a.indexOf(b) > -1)
代替。 <{1}}在无法找到字符串时返回indexOf
。
答案 2 :(得分:1)
.indexOf
会返回-1
,这是 truthy 值。您需要更明确地检查:
if (a.indexOf(b) != -1)
答案 3 :(得分:1)
您需要测试结果是否为-1。 -1表示不匹配,但在布尔意义上求值为true。
var a = "helloworld";
var b = "wold";
if(a.indexOf(b) > -1) {
document.write('yes');
} else {
document.write('no');
}
答案 4 :(得分:0)
那是因为indexOf
如果找不到值则返回-1:
if(a.indexOf(b) != -1) {
答案 5 :(得分:0)
您可能想要使用此
if(a.indexOf(b) != -1)