js 提取http请求 url字符串里的特定规则的name和password

例如一个url http://pis0sion:zihuang2010=-0@127.0.0.105:9091/auth    

我想提取出pis0sion为name    zihuang2010=-0为password。

通过正则匹配吗还是有api可以调用。求解

var r0 = new RegExp("://.*?@","i");

这个正则匹配:// 和 @ 中间的字符串,你匹配完可以打印出来看看

取到之后用split(":"),转成数组就行了,arr[0]就是name,arr[1]就是password

附上代码,经检测可用

var str="http://pis0sion:zihuang2010=-0@127.0.0.105:9091/auth"
var r0 = new RegExp("://.*?@","i");
var newstr = str.match(r0)[0]; // 输出  ://pis0sion:zihuang2010=-0@
var arr = newstr.substring(3,newstr.length-1).split(":");
console.log(arr) //["pis0sion", "zihuang2010=-0"]

有用记得点个采纳哈

正则匹配,api不太行 你这个不是正规的url https://blog.csdn.net/weixin_44058725/article/details/115295082?spm=1001.2014.3001.5502  。

如果url固定的话可以字符串截取

var str="http://pis0sion:zihuang2010=-0@127.0.0.105:9091/auth";
var end = str.indexOf("@"); 
var a=str.substring(7,end)
var arr=a.split(":")
console.log(a,arr,"00")

 

谢谢啦。var str="http://pis0sion:zihuang2010=-0@127.0.//0.1@@0@@()5:9091/@auth"
var r0 = new RegExp("(?<=://).*?(?=@)","i");
newstr = str.match(r0)[0];