Symbol.replace

The Symbol.replace static data property represents the well-known symbol @@replace. The String.prototype.replace() and String.prototype.replaceAll() methods look up this symbol on their first argument for the method that replaces substrings matched by the current object.

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

Try it

Value

The well-known symbol @@replace.

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

Examples

Using Symbol.replace

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

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

Specifications

Specification
ECMAScript Language Specification
# sec-symbol.replace

Browser compatibility

BCD tables only load in the browser

See also