-1

我该如何更换:

var url = "http://localhost:2879/ServiceDonneesArchive.svc/Installations(1002)?$expand=Stations";

经过:

var nameInstallation = 1002;
    var url = "http://localhost:2879/ServiceDonneesArchive.svc/Installations(nameInstallation)?$expand=Stations";
4

3 回答 3

1

使用.replace()方法。要将变量"nameInstallation"中的任何实例替换为:url"1002"

url = url.replace(/nameInstallation/g, "1002");

或者,如果您在变量中有替换值nameInstallation = 1002

url = url.replace(/nameInstallation/g, nameInstallation);

编辑:正如大卫托马斯所指出的,您可能不需要g正则表达式上的标志,即.replace(). 使用这个“全局”标志,它将替换文本“nameInstallation”的所有实例。如果没有标志,它将仅替换第一个实例。因此,要么包括它,要么根据您的需要将其关闭。(如果您只需要替换第一个匹配项,您还可以选择将字符串作为第一个参数而不是正则表达式传递。)

于 2012-04-24T21:34:51.843 回答
1

为什么要这样做?对于这个用例,简单的连接将非常易读:

var nameInstallation = 1002;
var url = 'http://localhost:2879/ServiceDonneesArchive.svc/Installations(' + nameInstallation + ')?$expand=Stations';
于 2012-04-24T21:17:03.347 回答
0

试试这个javascript函数

// from http://www.codeproject.com/Tips/201899/String-Format-in-JavaScript
        String.prototype.format = function (args) {
            var str = this;
            return str.replace(String.prototype.format.regex, function(item) {
                var intVal = parseInt(item.substring(1, item.length - 1));
                var replace;
                if (intVal >= 0) {
                    replace = args[intVal];
                } else if (intVal === -1) {
                    replace = "{";
                } else if (intVal === -2) {
                    replace = "}";
                } else {
                    replace = "";
                }
                return replace;
            });
        };
        String.prototype.format.regex = new RegExp("{-?[0-9]+}", "g");

并使用:

var url = "http://localhost:2879/ServiceDonneesArchive.svc/Installations{0}?$expand=Stations";
var nameInstallation = 1002;
var result = url.format(nameInstallation );
于 2012-04-24T15:11:05.780 回答