我这个正则如何改才能得到里面的名称?

php_wsd 2013-07-09 11:45:06
<script>
function getoption(url){
var str="";
var reg=/<a href=".+?">(.+?)<\/a>/g;
str=url.match(reg);
for(i=0;i<str.length;i++){
alert(RegExp.$1);
}
}
str='<a href="http://www.aspbc.com" target="_blank">网站1</a><a href="http://www.baidu.com" target="_blank">网站2</a><a href="http://www.sina.com.cn" target="_blank" title="新浪">网站3</a>';
getoption(str); //为什么我这里弹出了3次”网站3“
</script>

我想分别弹出“网站1”,"网站2",“网站3”,而这里这里为什么弹出了3次”网站3“?如何修改实现我想要的结果?
...全文
103 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
php_wsd 2013-07-09
  • 打赏
  • 举报
回复
2楼的结果是我想要 谢谢大家
php_wsd 2013-07-09
  • 打赏
  • 举报
回复
引用 2 楼 wzs_xyz 的回复:
正则没什么问题,问题在使用上,你alert时已经匹配结束了,RegExp.$1本来就是一个定值 function getoption(url){ var str=""; var reg=/<a href=".+?">(.+?)<\/a>/g; str=url.match(reg); for(i=0;i<str.length;i++){ alert(str[i]); } }
你这个结果输出了正则完整的匹配结果,不是我想要的结果,但还是谢谢你
hackerit 2013-07-09
  • 打赏
  • 举报
回复
也就是说,你加了/g,时,用match方法,你用()指定子匹配,就没有意义了,反正它也返回不了,里面的括弧里的子匹配了。
hackerit 2013-07-09
  • 打赏
  • 举报
回复
function getoption(url) {
	var str = "";
	var reg = /<a href=".+?">(.+?)<\/a>/g;
	while (str = reg.exec(url)) {
		alert(str[1]);
	}
}
str = '<a href="http://www.aspbc.com" target="_blank">网站1</a><a href="http://www.baidu.com" target="_blank">网站2</a><a href="http://www.sina.com.cn" target="_blank" title="新浪">网站3</a>';
getoption(str);
应该这样吧 当使用match时, 一、加/g,会匹配所有的可能,并将匹配的第一个,成为数组元素,也就是2楼,wzs_xyz的方法,会显示三个<a>,这不是楼主要的。 二、 不加/g,只作一次匹配,返回str[0] 是一个a,str[1] 是第一个子匹配,即“网站1” 这两个,显然,都不能满足楼主,所以应使用exec这个方法。 wzs_xyz
未知数 2013-07-09
  • 打赏
  • 举报
回复
正则没什么问题,问题在使用上,你alert时已经匹配结束了,RegExp.$1本来就是一个定值 function getoption(url){ var str=""; var reg=/<a href=".+?">(.+?)<\/a>/g; str=url.match(reg); for(i=0;i<str.length;i++){ alert(str[i]); } }
  • 打赏
  • 举报
回复
试试

function getoption(url){
var str="";
var reg=/<a href=".+?">(.+?)<\/a>/g;
while(r = reg.exec(url)) {   
alert(r[1]); 
}
}
str='<a href="http://www.aspbc.com" target="_blank">网站1</a><a href="http://www.baidu.com" target="_blank">网站2</a><a 

href="http://www.sina.com.cn" target="_blank" title="新浪">网站3</a>';
getoption(str); //为什么我这里弹出了3次”网站3“

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧