Symbol.replace
{{JSRef}}
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.replace
incore-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]()