例如这段语句: 'hi avator https://baidu.com this is a test link ok google.cn ds www.baidu.com qweqw baidu.app'
;
匹配出:
https://baidu.com
google.cn
www.baidu.com
baidu.app
类似这四种网址,谢谢
例如这段语句: 'hi avator https://baidu.com this is a test link ok google.cn ds www.baidu.com qweqw baidu.app'
;
匹配出:
https://baidu.com
google.cn
www.baidu.com
baidu.app
类似这四种网址,谢谢
'hi avator https://baidu.com this is a test link ok google.cn ds www.baidu.com qweqw baidu.app'
.match(/(https?:\/\/)?(\w+\.)+\w+/g)
会有误伤。
var reg = /\S*?\.(?:com|cn|app)/g;
'hi avator https://baidu.com this is a test link ok google.cn ds www.baidu.com qweqw baidu.app'.match(reg)
一个可能的匹配规则:
RE=/(?<=^|\s)((\w+:\/\/)?(\S+\.)+\w+)(?=\s|$)/g
稍微解释一下,就是匹配左边要么是开头,或者空格;右边要么是空格或者结尾,中间由多个由.
连起来的连续非空字符和最后多个字母符,前面还可以有普通字符构成的协议名称。它可以正确匹配:
STR1="hi avator https://baidu.com this is a test link ok google.cn ds wwww.baidu.co_m qweqw baidu.app" // 匹配出 https://baidu.com google.cn wwww.baidu.co_m baidu.app
STR2="hi avator htt1ps://bai-du.com this is a test link ok g_oo2gle.cn ds wwww.baidu.co-m qweqw bai-du.app" // 匹配出 htt1ps://bai-du.com g_oo2gle.cn bai-du.app
STR3="hi avator htt-ps://bai-du.com this is a test link ok g_oo2gle.cn ds wwww.baidu.co-m qweqw bai-du.app" // 匹配出 g_oo2gle.cn bai-du.app
注意,\w
可以匹配大小写字母,数字和下划线,不匹配中划线。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决