使用javascript检查字符串中存在的模式

时间:2009-07-07 07:58:20

标签: javascript regex url

如何使用javascript检查字符串中是否存在url或url模式。

<script language="javascript">
var str="http://localhost/testprj?test=123213123";
var s=location.href;
if(s.match('/http://localhost/testprj?test=1232/'){
    alert('welcome!!');
}
</script>

我需要的是检查网址模式。

完整代码

<html>
<head>
</head>
    <body>
<style>
.active{
    color:#009900;
    font-weight:bold;
}
</style>

    <div id="menu">
    <ul><li>
    <ul><li>    <a href="html1.html">0</a>
        <a href="html.html" >1</a>
        <a href="2">2</a>
        </li>
    </ul></li>
    </ul>
    </div>

    <script language="javascript">

        var c=document.getElementById('menu').getElementsByTagName('a').length;
        var v=document.getElementById('menu').getElementsByTagName('a');
        var s=location.href;
        //alert(s.match('html'));
        for(var i=0;i<c;i++){
            //alert('href'+v[i].className);
            if(v[i].href==location.href){
                v[i].className='active';
            }

        }

    </script>   


    </body>
</html>

这工作正常,但是如果获得params引起了一些问题......

喜欢page.php?page = userlist 工作正常

但是

喜欢page.php?page = userlist&amp; id = 121221

这是基本链接网址 的 链路

5 个答案:

答案 0 :(得分:4)

对于模式检查,您需要查看regular expressions

您想要检查哪种特定模式?如果您只想检查字符串是否为URL,则应执行以下代码:

var myString = "http://blah.com/helloworld/";
if (myString.match(/http:\/\//)) {
    alert("'myString' is a URL.");
}

史蒂夫

答案 1 :(得分:1)

/http:\/\/localhost\/testprj\?test=1232/.test(s)

答案 2 :(得分:0)

我认为你只是有一些小的语法问题:

var re = /http:\/\/localhost\/testprj\?test=1232/
var s=location.href;
if(s.match(re)) { 
  alert('welcome!!'); 
} 

答案 3 :(得分:0)

请注意,正则表达式是javascript中自己的数据类型:没有引号或任何内容,只有/ delimeters

答案 4 :(得分:-1)

是的,我终于得到了解决方案 我使用了函数

for(var i=0;i<len;i++){
        if(strstr(url,a[i].href)) {
            a[i].className='active';
        }
    }

    function strstr( url, href) {
        var pos = 0;
        url += '';
        pos = url.indexOf( href );
        if (pos == -1) {
            return false;
        } 
        else{
            if(strcmp(url,href)==0)
               return 1;
       }

    }
    function strcmp ( str1, str2 ) {
       return ( ( str1 == str2 ) ? 0 : ( ( str1 > str2 ) ? 1 : -1 ) );
    }
像这样,它的工作正常!!!

谢谢