我的应用程序将在多个环境中工作,我需要获得共同的价值(我的应用程序的基本网址)才能工作..
从我的窗口位置如何从一开始就获得某些部分..
示例:
http://xxxxx.yyyy.xxxxx.com:14567/yx/someother/foldername/index.html
我怎么才能得到:
http://xxxxx.yyyy.xxxxx.com:14567/yx/
我的尝试:
var base = \w([yx]/)
基地只选择yx/
如何获取前面的值?
这部分..
提前感谢..
答案 0 :(得分:3)
如果已知“其他”是您网站的根目录,请替换
\w([yx]/)
与
(.*\/)someother\/
(请注意/字符在这里转义),它给出了第一个匹配:
http://xxxxx.yyyy.xxxxx.com:14567/yx/
然而,正则表达式可能不是这样做的最佳方式;看看是否有任何方式可以通过其他方式传递基本URL,例如从页面后面运行的代码中传递。
答案 1 :(得分:1)
如果您不介意忽略尾部斜杠,则可以在没有正则表达式的情况下执行此操作:
var url = 'http://xxxxx.yyyy.xxxxx.com:14567/yx/someother/foldername/index.html';
url.split('/', 4).join('/');
//-> "http://xxxxx.yyyy.xxxxx.com:14567/yx"
如果你想要尾部斜杠,可以很容易地附加+ '/'
。
答案 2 :(得分:0)
请尝试使用regexp:
http\:\/\/[\w\.]+\:\d+\/\w+\/
答案 3 :(得分:0)
这个应该做得很好
http:\/\/[\w\.]+\:\d+\/\w+\/
答案 4 :(得分:0)
也许是这样的?
的Javascript
function myBase(url, baseString) {
if (url && baseString) {
var array = url.split(new RegExp("\\b" + baseString + "\\b"));
if (array.length === 2) {
return array[0] + baseString + "/";
}
}
return null;
}
var testUrl = "http://xxxxx.yyyy.xxxxx.com:14567/yx/someother/foldername/index.html",
testBase = "yx";
console.log(myBase(testUrl, testBase))
输出
http://xxxxx.yyyy.xxxxx.com:14567/yx/
上