打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
javascript获取正则中的子匹配
昨天帮朋友处理一段文本正好用到了这个,记录一下。
1
2
3
4
5
6
7
8
9
10
var str = '<a href="http://google.com" target="_blank">google</a>123<a title="百度" href="http://baidu.com">baidu</a>abce<a href="http://msn.com" class="msn">msn</a>kkk';
// *? 非贪婪匹配
var reg = /<a.*?href="([^"]*)"[^>]*>([^<]*)</a>/i;
var arr = [];
while(reg.exec(str)){
arr.push({'link':RegExp.$1 , 'text':RegExp.$2});
str = RegExp.rightContext;//将str截断
reg.lastIndex = 0;//重置下次匹配开始的位置
}
console.info(arr);
另外两种正则表达式语法有一些不同,比如说转义。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#正则表达式语法 1
re = /pattern/[flags]
#正则表达式语法 2
re = new RegExp("pattern",["flags"])
#比如说要匹配"潘魏增(panweizeng)",同时获取其中的子匹配panweizeng,对应的写法如下
var reg = /[^(]+(([^)]+))/g;
#这里需要对括号使用两个转义符号
var reg = new RegExp("[^\(]+\(([^\)]+)\)", "g");
var submatch;
if(reg.exec(str)){
submatch = RegExp.$1;
reg.lastIndex = 0;
}
console.info(submatch);
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
正则表达式 g修饰符的功能说明 | 猫猫小屋
如何定义正则表达式
正则表达式大全
正则基础之——捕获组(capturegroup)
【转】javascript验证
js 判断字符串中是否包含某个字符串
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服