0

只是为了说明我想要做什么,我将粘贴这个示例代码,例如:

<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进入我的页面,但是如果我更改条件,例如:

if ( "Isl" in oc(["Hello","Hello World","Have","Island"]) )

该函数找不到匹配项。即使只有部分字符串匹配,执行这种检查也会返回 true 的最佳方法是什么?

谢谢

勒隆

4

4 回答 4

4

使用.indexOf()

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

indexOf()返回找到值的位置。如果没有匹配则返回-1,所以我们需要检查结果是否大于或等于0

于 2012-05-15T17:39:57.560 回答
1

您可以使用正则表达式中的 .test 方法。

var pattern = /Isl/;
pattern.test("Island"); // true
pattern.test("asdf"); //false
于 2012-05-15T17:41:47.557 回答
0
var s = "helloo";
alert(s.indexOf("oo") != -1);

indexOf 返回字符串在另一个字符串中的位置。如果没有找到,它将返回 -1。

https://developer.mozilla.org/en/Core%5FJavaScript%5F1.5%5FReference/Objects/String/indexOf

于 2012-05-15T17:41:23.847 回答
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> 
于 2012-05-15T17:48:29.403 回答