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 に答える