Javascript / jQuery库替换文本中的变量

时间:2011-09-01 10:38:16

标签: jquery parsing jquery-plugins javascript

我有Javascript API,用户通过URL调用它们。我可能需要更换网址的某些部分,例如他们可能会使用上传网址调用我的ajax照片上传API:

http://www.example.com/photos/upload/${username};jsessionid=l2k34523

然后我需要在我的代码上传照片时发布到该网址,替换$ {username}。我可以告诉他们如何在URL中格式化该用户名变量,但我必须允许他们插入这样的变量。

是否有一个好的Javascript或jQuery库可以轻松替换上面的变量?

1 个答案:

答案 0 :(得分:0)

一个简单的format函数可以帮到你......

// add String prototype format function if it doesn't exist yet
if (jQuery.isFunction(String.prototype.format) === false)
{
    String.prototype.format = function () {
        var s = this;
        var i = arguments.length;
        while (i--)
        {
            s = s.replace(new RegExp('\\{' + i + '\\}', 'gim'), arguments[i]);
        }
        return s;
    };
}

因此您可以轻松地将其用作:

".../photos/upload/{0};jsessionid=l2k34523".format("JohnDoe");

或多个变量:

".../photos/upload/{0};jsessionid={1}".format("JohnDoe", "l2k34523");