2012-05-15 159 views
0

只是为了说明我想做的事情,我会填写Flash例如此示例代码:JavaScript的 - 我该如何检查,如果一个字符串的一部分或等于另一个字符串

<html> 
<head> 
</head> 
<body> 
<script type="text/javascript"> 
function oc(a) 
{ 
    var o = {}; 
    for(var i=0;i<a.length;i++) 
    { 
    o[a[i]]=''; 
    } 
    return o; 
} 
if ("Island" in oc(["Hello","Hello World","Have","Island"])) 
{ 
document.write("Yes"); 
} 
</script> 
</body> 
</html> 

在这种情况下,我得到Yes我的网页上,但如果我改变的条件,如:

如果( “ISL” 在OC([ “你好”, “你好世界”, “具有”, “岛”))

功能找不到匹配。即使只有部分字符串匹配,执行这种检查的最佳方式是什么,它将返回true?

感谢

Leron

+0

JavaScript并不是Python的。我建议你试着放弃你的“入侵”... – hugomg

回答

4

使用.indexOf()

var str = 'hello world' 
if (str.indexOf('lo') >= 0) { 
    alert('jippy'); 
} 

indexOf()返回其中值出现的位置。如果没有匹配,则返回-1,因此我们需要检查结果是否大于或等于0

+0

这里是[MDN上的''String.indexOf(str)']的有用参考](https://developer.mozilla.org/en/JavaScript/参考/ Global_Objects /阵列/的indexOf)。 – maerics

+0

谢谢,非常快,非常有用! – Leron

+0

你也可以使用'String .match()'方法并检查'true',但这样会运行得更快。 – ZanderKruz

1

您可以从正则表达式使用。测试方法。

var pattern = /Isl/; 
pattern.test("Island"); // true 
pattern.test("asdf"); //false 
+0

也是一个很好的,谢谢 – Leron

0
<html> 
<head> 
</head> 
<body> 
<script type="text/javascript"> 
function inArray(str, array) 
{ 
    for(var i=0; i<array.length; i++) 
    { 
    if (array[i].indexOf(str) >= 0) 
     return true; 
    } 
    return false; 
} 
if (inArray("Island", ["Hello","Hello World","Have","Island"]) 
{ 
document.write("Yes"); 
} 
</script> 
</body> 
</html> 
相关问题