replace.js
937 Bytes
define(['../lang/toString', '../lang/toArray'], function (toString, toArray) {
/**
* Replace string(s) with the replacement(s) in the source.
*/
function replace(str, search, replacements) {
str = toString(str);
search = toArray(search);
replacements = toArray(replacements);
var searchLength = search.length,
replacementsLength = replacements.length;
if (replacementsLength !== 1 && searchLength !== replacementsLength) {
throw new Error('Unequal number of searches and replacements');
}
var i = -1;
while (++i < searchLength) {
// Use the first replacement for all searches if only one
// replacement is provided
str = str.replace(
search[i],
replacements[(replacementsLength === 1) ? 0 : i]);
}
return str;
}
return replace;
});