有一段url是http://test.xxx.com/platform/mysql-147-16058/mysql/manage
需要提取到mysql-147-16058
这一段,不想通过切割取。因为可能url变化。
规律是前面是 platform 后面是需要截取字符串的第一段,如mysql
,这是相同的
谢谢!!!
有一段url是http://test.xxx.com/platform/mysql-147-16058/mysql/manage
需要提取到mysql-147-16058
这一段,不想通过切割取。因为可能url变化。
规律是前面是 platform 后面是需要截取字符串的第一段,如mysql
,这是相同的
谢谢!!!
var url = 'http://test.xxx.com/platform/mysql-147-16058/mysql/manage'
var reg = /(?<=platform\/)[^/]+/
url.match(reg)
'http://test.xxx.com/platform/mysql-147-16058/mysql/manage'.match(/\/platform\/(mysql-[^\/]+)/)
越多的明确信息,匹配约准确。
解释看注释
var str = 'http://test.xxx.com/platform/mysql-147-16058/mysql/manage'
// 其实只需要判断前缀为 `/platform/` 后面是连续的一个字母数字或_的完整标识符即可
var reg = /\/platform\/(mysql[\w\-]+)/
// 如果需要截取的字符串会有中文或标点的就用下面这句
// var reg = /\/platform\/(mysql[^\/]+)\//
// 用match直接获取匹配数组
var matches = str.match(reg)
// 如果匹配到,那么下标为1的即为匹配目标,匹配不到的话,给出 ''
var ret = matches ? matches[1] : ''
// 打印 mysql-147-16058
console.log(ret)
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
'http://test.xxx.com/platform/mysql-147-16058/mysql/manage'.match(/\/platform\/([^\/]+)/)
特征都有了,截取一下还是蛮简单的吧。把
platform
后面一坨截取出来其实在当前这个情况下,你字符串截取也是可以的。你获取到 platform 的位置,然后 +1 就可以了