如果索引未知,如何在javascript中查找子字符串?

时间:2012-01-02 06:52:25

标签: javascript substr

假设我有一个包含HTML文件的字符串。如何仅将脚本部分作为我的子字符串?

示例字符串是:

str="<html>...<script>...</script>...</html>"

我只需要脚本部分。

<script type = "text/javascript">
function Showques()
{
    var xmlhttp;
    if (window.XMLHttpRequest)
    {
        xmlhttp=new XMLHttpRequest();
    } 
    else 
    {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    //getting response from servlet
    xmlhttp.onreadystatechange=function();
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) 
        {
            var localString=xmlhttp.responseText;
            var locationstart =localString.indexOf('<script>');
            var locationend = localString.indexOf('</script>');
            //eval(xmlhttp.responseText);
            document.getElementById("ques").innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("POST","XmlApp",true);
    xmlhttp.send();
}
</script>

当我在</script>方法中给出indexOf时,它正在考虑作为我在开始时声明的脚本的结尾以及其他一些我收到错误的内容。

3 个答案:

答案 0 :(得分:2)

使用

string.indexOf(searchstring, start)

在字符串中查找正确的索引。然后,您可以在substr函数中使用索引。

希望这有帮助。

答案 1 :(得分:1)

如果你的字符串是一个真正的html文件,你最好使用dom解析器 如果你正在使用javascript,这里有一个简单的jQuery方法:

str="<html>...<script>...</script>...</html>";
$(str).find("script").get(0).outerHtml;

答案 2 :(得分:0)

试试这个from aNd This

 String str = "yourStringTosearch"
 int location = str.indexOf('String');
 string.substring(location , to)

好的,根据你的例子做这个

 String str = "<html>...<script>...</script>...</html>"
 int locationStart = str.indexOf('<script>');
 int locationend = str.indexOf('</script>');
 strinf finalString =string.substring(locationStart , locationend );   //ur final string value