我想用一个方法截取url的一部分,例如:https://www.xxx.com.cn/html-x...其中html四个字符是确定存在的,现在想取html-xxx后面的aaa,怎么做,有没有简单的办法,注意
- 只有html是确定存在的,可能是html-aaa,可能是html_aaa,也可能只有html,总之是任何url合法字符
- html-xxx/后面的aaa也可以是多变的任意url合法字符,可能是aaa-bbb,aaa_bbb,aaaBBB等等
我想用一个方法截取url的一部分,例如:https://www.xxx.com.cn/html-x...其中html四个字符是确定存在的,现在想取html-xxx后面的aaa,怎么做,有没有简单的办法,注意
// 和一楼解答类似,不过感觉你的需求还不是很明确。或者说分别有什么场景。
var url = 'https://www.xxx.com.cn/html-xxx/strong-aaa/strong/bb/index.html';
var reg = /\/html-[^\/]*\/([^\/]+)/;
var result = url.match(reg)[1];
console.log(result); // 'strong-aaa'
\/
这是对/
的转义。([^\/]*)
,[^\/]
这个表示不是/
的任意字符。*
表示0个或者多个。+
表示1个或多个。()
表示分组捕获。
关于正则,推荐前端网老姚的系列文章和迷你书。正则表达式系列总结,值得一读。
var url = 'https://www.xxx.com.cn/html-xxx/strongaaa/strong/bb/index.html'
var reg = /\/html-\w+\/(\w+)/
var result = url.match(reg)[1]
// 结果为 "strongaaa"
对正则是在头疼,自己最笨拙的办法
const url = 'www.sss.com.cn/html-xxx/saaa-daa/sss/index.html';
const htmlStrArr = url.match(/html\S*\//);
if (htmlStrArr) {
const htmlStr = htmlStrArr[0];
const merchantStart = htmlStr.indexOf('/');
const merchantStr = htmlStr.substring(merchantStart + 1);
merchant = merchantStr.substring(0, merchantStr.indexOf('/'));
console.log(merchant)
}
const a = 'https://www.xxx.com.cn/html_xxx/strongaaa/strong/bb/index.html,'
console.log(a.match(/html\W*\w*(?=\/)/)[0].replace(/html(\w{1}|\W{1})/,'')) /// 'xxx'
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答897 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
试试这个