日期:2014-05-16  浏览次数:20435 次

js正则问题
var str ="<a href='www.dsf.jsp'>123</a><a href='www.dsf.jsp'>456</a>";
现在用js正则取到123,和456应该怎么取到?
正则 js

------解决方案--------------------
引用:
Quote: 引用:


var str ="<a href='www.dsf.jsp'>123</a><a href='www.dsf.jsp'>456</a>";
alert( str.match(/\d+(?=<\/a>)/ig) ) ;
//或者
alert( str.match(/\d+/g) ) ;
那数字只是个代表,不能用\\d,可以是任意的东西

var str ="<a href='www.dsf.jsp'>123</a><a href='www.dsf.jsp'>456</a>";
alert( str.match(/[^>]+(?=<\/a>)/ig) ) ;
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:


var str ="<a href='www.dsf.jsp'>123</a><a href='www.dsf.jsp'>456</a>";
alert( str.match(/\d+(?=<\/a>)/ig) ) ;
//或者
alert( str.match(/\d+/g) ) ;
那数字只是个代表,不能用\\d,可以是任意的东西

var str ="<a href='www.dsf.jsp'>123</a><a href='www.dsf.jsp'>456</a>";
alert( str.match(/[^>]+(?=<\/a>)/ig) ) ;


可能是我太菜,有点没看懂,前面这个是怎么回事?
/[^>]
取 ^或者>  ?
虽然匹配出来了,但是不懂。。。

我用了两个零宽度断言,这样就OK:
(?<=\B>).*?(?=<\/a)
------解决方案--------------------
var result;
var reg = /<a.*?>(.+?)<\/a>/g;
var str ="<a href='www.dsf.jsp'>123</a><a href='www.dsf.jsp'>456</a>";
while ((result = reg.exec(str)) != null)  {
  alert(result[1]);
 }