以下代码中非常奇怪的行为:
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);
显然确实有“文字”。我错过了什么吗?
答案 0 :(得分:1)
问题是.exec
返回一个数组,而不是一个字符串。对数组执行.indexOf
将返回完全等于搜索词的数组元素索引(或者在无法识别它的浏览器中失败,例如IE8)。
如果那是你想要的,你可以showName.toString().indexOf("text")
。
答案 1 :(得分:-1)
尝试这样:
var patt3=/Profile">[^<]*(?=<)/;
var re = new RegExp(regexp);
re.test(showContent );
测试将返回true或false