The Symbol.replace well-known symbol specifies the method that replaces matched substrings of a string. This function is called by the String.prototype.replace() method.

For more information, see RegExp.prototype[@@replace]() and String.prototype.replace().

Property attributes of Symbol.replace
Writable no
Enumerable no
Configurable no


Using Symbol.replace

class CustomReplacer {
  constructor(value) {
    this.value = value;
  [Symbol.replace](string) {
    return string.replace(this.value, '#!@?');

console.log('football'.replace(new CustomReplacer('foo')));
// expected output: "#!@?tball"


Browser compatibility

BCD tables only load in the browser

See also