使用Regex将数组索引替换为Array元素。 jQuery的

时间:2013-02-26 11:56:01

标签: javascript jquery regex

我需要一个字符串帮助器来替换方括号内的所有变量。使用javascript

"Hello, [0]".modify(["ABC"])

"Heelo, [0], This is [1]".modify(["ABC", "XYZ"])

"Heelo, [0], This is [1], Your email address is [2]".modify(["ABC", "XYZ", "abcdef@example.com"])

所以基本上 modify()将获取数组并用适当的索引替换字符串。

任何建议都会有所帮助。

3 个答案:

答案 0 :(得分:0)

String.prototype.modify = function(arr) {
    return this.replace(/\[(\d+)\]/g, function(c, m) {
        return arr[m] === undefined ? c : arr[m];
    });
};

"Heelo, [0], This is [1]".modify(["ABC", "XYZ"]);
// "Heelo, ABC, This is XYZ"

答案 1 :(得分:0)

String.prototype.modify = function() {
  var s = arguments[0];
  for (var i = 0; i < arguments.length - 1; i++) {       
    var reg = new RegExp("\\[" + i + "\\]", "gm");             
    s = s.replace(reg, arguments[i + 1]);
  }
  return s;
}

答案 2 :(得分:0)

所有答案都很有用,

但是我使用了@PedrodelSol

提供的链接中的in-build功能
"Hello {0}, This is {1}".format(["ABC", "XYZ"])