JavaScript正则或者特定规律字段

有一段url是http://test.xxx.com/platform/mysql-147-16058/mysql/manage
需要提取到mysql-147-16058这一段,不想通过切割取。因为可能url变化。
规律是前面是 platform 后面是需要截取字符串的第一段,如mysql,这是相同的
谢谢!!!

阅读 2k
4 个回答

'http://test.xxx.com/platform/mysql-147-16058/mysql/manage'.match(/\/platform\/([^\/]+)/)

特征都有了,截取一下还是蛮简单的吧。把 platform 后面一坨截取出来

image.png


其实在当前这个情况下,你字符串截取也是可以的。你获取到 platform 的位置,然后 +1 就可以了

image.png

image.png

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)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题