如何使用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
这是基本链接网址 的 链路
答案 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 ) );
}
像这样,它的工作正常!!!
谢谢