-1

以下のコードの非常に奇妙な動作:

var showContent = document.getElementById("something"); // Search for a content
showContent = showContent.innerHTML;
var patt3=/Profile">[^<]*(?=<)/; // Search for this pattern ...
var showName=patt3.exec(showContent); // ... within the above found content

上記のshowNameの結果内の文字列を検索したいときに、問題が発生します。

var yesTest = showName.indexOf("text");
alert(yesTest);

上記は常に-1を返します(コンテンツが見つかりません)。しかし、これは

alert(showName);

明らかに「テキスト」が含まれています。私は何かが足りないのですか?

4

2 に答える 2

1

問題は.exec、文字列ではなく配列を返すことです。配列.indexOfを実行すると、検索語に完全に等しい配列要素インデックスが返されます(または、IE8などの検索語を認識しないブラウザーでは失敗します)。

それがあなたが望むならあなたはすることができますshowName.toString().indexOf("text")

于 2012-04-16T08:00:45.513 に答える
-1

このようにしてみてください:

var patt3=/Profile">[^<]*(?=<)/;

 var re = new RegExp(regexp);

 re.test(showContent );

テストはtrueまたはfalseを返します

于 2012-04-16T07:46:23.767 に答える