读书人

js正则有关问题

发布时间: 2013-09-28 10:01:20 作者: rapoo

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]);
}

读书人网 >JavaScript

热点推荐