在JavaScript中搜索RegEx结果中的字符串

时间:2012-04-16 07:39:53

标签: javascript regex search innerhtml indexof

以下代码中非常奇怪的行为:

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

显然确实有“文字”。我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

问题是.exec返回一个数组,而不是一个字符串。对数组执行.indexOf将返回完全等于搜索词的数组元素索引(或者在无法识别它的浏览器中失败,例如IE8)。

如果那是你想要的,你可以showName.toString().indexOf("text")

答案 1 :(得分:-1)

尝试这样:

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

 var re = new RegExp(regexp);

 re.test(showContent );

测试将返回true或false