2012-05-15 221 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> 
相關問題