js正則表達式問題

buyue__ 2014-06-10 03:09:35
按<td></td>分隔,不包含<td>和</td>

var str="<td><a class="red" href="http://localhost:2013/ho/article/category/2" target="_blank">9</a></td>"
+"<td><a onclick="edit(this)" href="javascript:void(0)" name="edit">888</a> | <a onclick="return category.del(this)" href="?del=2" name="del">777</a></td>"
+"<td><a class="down" onclick="return false;" href="javascript:void(0);">999</a></td>"

var td_array = str.match(/(?=<td>).*?(?=<\/td>)/ig);//这个不对
...全文
139 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
scscms太阳光 2014-06-11
  • 打赏
  • 举报
回复
楼主这是误导。 其实就是获取td间的内容<td>(.*?)<\/td>
<script type="text/javascript">
    var str='<td><a class="red" href="http://localhost:2013/ho/article/category/2" target="_blank">9</a></td>'
            +'<td><a onclick="edit(this)" href="javascript:void(0)" name="edit">888</a> | <a onclick="return category.del(this)" href="?del=2" name="del">777</a></td>'
    +'<td><a class="down" onclick="return false;" href="javascript:void(0);">999</a></td>';
    var arr = [];
    str.replace(/<td>(.*?)<\/td>/g,function(a,b){arr.push(b)});
    console.log(arr);
</script>
天际的海浪 2014-06-10
  • 打赏
  • 举报
回复
(?=<td>)是正向肯定预查,它是在预查结果的开始处再进行其它匹配查找,这显然不是你需要的 这时虽然应该用(?<=<td>)反向肯定预查,但目前 javascript还不支持这个语法 所以 只能换个方法 var td_array = str.match(/<td>(.*)<\/td>/)[1].split(/<\/td><td>/);
  • 打赏
  • 举报
回复
var td_array=[];
str.replace(/<td>([\s\S]*?)(?=<\/td>)/ig,function(){
	td_array.push(arguments[1]);
});//这个不对
alert(td_array);

87,902

社区成员

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

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