Symbol.replace
The Symbol.replace static data property represents the well-known symbol Symbol.replace. The {{jsxref("String.prototype.replace()")}} and {{jsxref("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[Symbol.replace](), {{jsxref("String.prototype.replace()")}} , and {{jsxref("String.prototype.replaceAll()")}} .
{{InteractiveExample("JavaScript Demo: Symbol.replace")}}
class Replace1 {
constructor(value) {
this.value = value;
}
[Symbol.replace](string) {
return `s/${string}/${this.value}/g`;
}
}
console.log("foo".replace(new Replace1("bar")));
// Expected output: "s/foo/bar/g"
Value
The well-known symbol Symbol.replace.
{{js_property_attributes(0, 0, 0)}}
Examples
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"))); // "#!@?tball"
Specifications
{{Specifications}}
Browser compatibility
{{Compat}}
See also
- Polyfill of
Symbol.replaceincore-js {{jsxref("Symbol.match")}}{{jsxref("Symbol.matchAll")}}{{jsxref("Symbol.search")}}{{jsxref("Symbol.split")}}{{jsxref("String.prototype.replace()")}}{{jsxref("String.prototype.replaceAll()")}}RegExp.prototype[Symbol.replace]()