2

我的应用程序将在多个环境中工作,我需要在其中获取通用值(我的应用程序的基本 url)才能工作..

从我的窗口位置我如何从一开始就获得某些部分..

例子 :

    http://xxxxx.yyyy.xxxxx.com:14567/yx/someother/foldername/index.html

我怎样才能得到:

http://xxxxx.yyyy.xxxxx.com:14567/yx/

我的尝试:

var base = \w([yx]/)

base 只选择yx/如何获取前面的值?

这部分..

提前致谢..

4

5 回答 5

3

如果已知“其他人”是您网站的根目录,则替换

    \w([yx]/)

    (.*\/)someother\/

(注意 / 字符在这里被转义)它给出了第一个匹配:

   http://xxxxx.yyyy.xxxxx.com:14567/yx/

但是,正则表达式可能不是最好的方法。看看是否有任何方法可以通过其他方式传递基本 URL,例如从页面后面运行的代码。

于 2013-07-11T08:47:13.417 回答
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"

如果你想要尾部斜杠,很容易附加+ '/'.

于 2013-07-11T08:46:23.437 回答
0

请尝试以下正则表达式:

http\:\/\/[\w\.]+\:\d+\/\w+\/
于 2013-07-11T08:51:24.043 回答
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/ 

jsfiddle 上

于 2013-07-11T08:59:55.420 回答
0

这个应该做得很好

http:\/\/[\w\.]+\:\d+\/\w+\/
于 2013-07-11T08:56:20.113 回答