You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
684 B
23 lines
684 B
var utils = require('../utils') |
|
, nodes = require('../nodes'); |
|
|
|
/** |
|
* Returns string with all matches of `pattern` replaced by `replacement` in given `val` |
|
* |
|
* @param {String} pattern |
|
* @param {String} replacement |
|
* @param {String|Ident} val |
|
* @return {String|Ident} |
|
* @api public |
|
*/ |
|
|
|
module.exports = function replace(pattern, replacement, val){ |
|
utils.assertString(pattern, 'pattern'); |
|
utils.assertString(replacement, 'replacement'); |
|
utils.assertString(val, 'val'); |
|
pattern = new RegExp(pattern.string, 'g'); |
|
var res = val.string.replace(pattern, replacement.string); |
|
return val instanceof nodes.Ident |
|
? new nodes.Ident(res) |
|
: new nodes.String(res); |
|
};
|
|
|