-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 );

测试将返回真或假

于 2012-04-16T07:46:23.767 回答