将JAVASCRIPT转为VB
<scriptlanguage=javascript>//<!--functiongetHrefs(str){varlinks,tmp,pos;links="";str=...
<script language=javascript>
//<!--
function getHrefs(str) {
var links,tmp,pos;
links="";
str=str.replace(/\r|\n/g," "); //剔除字符串中的回车换行
while (true) {
pos=str.search(/<a .*href\s*=\s*/i); //找<a XXX href=XXX形式的字符串(避免分析link href=xxx样子的字符串)
if (pos<0) break;
str=str.substr(pos+2); //将<a 及其以前的部分去掉
pos=str.search(/ href\s*=\s*/i); //找 href=XXX形式的字符串
if (pos<0) break;
str=str.substr(pos); //将href以前的部分去掉
pos=str.search(/<\/a>/i); //找</a>
if (pos<0) break;
tmp=str.substring(0,pos+4); //截取包含链接的字符串
tmp=getHref(tmp); //参数tmp的形式:href=aaaa xxx>yyyy</a>
if (tmp) {links += tmp+"\n\r";}
str=str.substr(pos+4); //将处理过的部分(</a>及其以前的部分)去掉
}
return links;
}
function getHref(str) {
var strhref,pos,char0,r,noHref;
if (str==null|str=="") {return "";}
r=/href\s*=\s*([^>]+)>.+<\/a>/i;
noHref=/mailto:|#|javascript:|vbscript:|file:/i;
str=str.replace(r,"$1"); //取得 href=xxx 的xxx部分
if ( str.search(noHref)>=0 ) {return "";} //不处理此类链接
str=str.replace(/(^\s+)|(\s+$)/g, ""); //去除首尾空格
char0=str.charAt(0);
strhref="";
if (char0=="'" | char0=="\"") { //有引号时,取引号内的部分
pos=str.indexOf(char0,1);
if (pos>0) {strhref=str.substring(1,pos);}
} else { //没有引号时,分两种情况
pos=str.indexOf(" ",1);
if (pos>0) //href=xxx后有空格,说明还有其他属性,取空格以前的部分
{strhref=str.substring(0,pos);}
else //href=xxx后没有空格,取全部,即是href=aaaa>的形式
{strhref=str;}
}
var wr=/^'|^"|^\||^\\|^<|^>|^&/;
if ( strhref.search(wr)>=0 ) {return "";}
return strhref;
}
//-->
</script>
这段代码是网页中提取超链接的代码...哪位大哥大姐能用VB来实现这个功能啊?
是啊..我想用VB来实现提取超链接的功能,最后编译成EXE程序!
我就是想在VB中获取一个网页上的代码,然后把代码中的所有超链接地址全部提取出来! 展开
//<!--
function getHrefs(str) {
var links,tmp,pos;
links="";
str=str.replace(/\r|\n/g," "); //剔除字符串中的回车换行
while (true) {
pos=str.search(/<a .*href\s*=\s*/i); //找<a XXX href=XXX形式的字符串(避免分析link href=xxx样子的字符串)
if (pos<0) break;
str=str.substr(pos+2); //将<a 及其以前的部分去掉
pos=str.search(/ href\s*=\s*/i); //找 href=XXX形式的字符串
if (pos<0) break;
str=str.substr(pos); //将href以前的部分去掉
pos=str.search(/<\/a>/i); //找</a>
if (pos<0) break;
tmp=str.substring(0,pos+4); //截取包含链接的字符串
tmp=getHref(tmp); //参数tmp的形式:href=aaaa xxx>yyyy</a>
if (tmp) {links += tmp+"\n\r";}
str=str.substr(pos+4); //将处理过的部分(</a>及其以前的部分)去掉
}
return links;
}
function getHref(str) {
var strhref,pos,char0,r,noHref;
if (str==null|str=="") {return "";}
r=/href\s*=\s*([^>]+)>.+<\/a>/i;
noHref=/mailto:|#|javascript:|vbscript:|file:/i;
str=str.replace(r,"$1"); //取得 href=xxx 的xxx部分
if ( str.search(noHref)>=0 ) {return "";} //不处理此类链接
str=str.replace(/(^\s+)|(\s+$)/g, ""); //去除首尾空格
char0=str.charAt(0);
strhref="";
if (char0=="'" | char0=="\"") { //有引号时,取引号内的部分
pos=str.indexOf(char0,1);
if (pos>0) {strhref=str.substring(1,pos);}
} else { //没有引号时,分两种情况
pos=str.indexOf(" ",1);
if (pos>0) //href=xxx后有空格,说明还有其他属性,取空格以前的部分
{strhref=str.substring(0,pos);}
else //href=xxx后没有空格,取全部,即是href=aaaa>的形式
{strhref=str;}
}
var wr=/^'|^"|^\||^\\|^<|^>|^&/;
if ( strhref.search(wr)>=0 ) {return "";}
return strhref;
}
//-->
</script>
这段代码是网页中提取超链接的代码...哪位大哥大姐能用VB来实现这个功能啊?
是啊..我想用VB来实现提取超链接的功能,最后编译成EXE程序!
我就是想在VB中获取一个网页上的代码,然后把代码中的所有超链接地址全部提取出来! 展开
3个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询