Symbol.split
{{JSRef}}
The Symbol.split
static data property represents the well-known symbol Symbol.split
. The {{jsxref("String.prototype.split()")}}
method looks up this symbol on its first argument for the method that splits a string at the indices that match the current object.
For more information, see RegExp.prototype[Symbol.split]()
and {{jsxref("String.prototype.split()")}}
.
{{InteractiveExample("JavaScript Demo: Symbol.split", "taller")}}
class Split1 {
constructor(value) {
this.value = value;
}
[Symbol.split](string) {
const index = string.indexOf(this.value);
return `${this.value}${string.substring(0, index)}/${string.substring(
index + this.value.length,
)}`;
}
}
console.log("foobar".split(new Split1("foo")));
// Expected output: "foo/bar"
Value
The well-known symbol Symbol.split
.
{{js_property_attributes(0, 0, 0)}}
Examples
Custom reverse split
class ReverseSplit {
[Symbol.split](string) {
const array = string.split(" ");
return array.reverse();
}
}
console.log("Another one bites the dust".split(new ReverseSplit()));
// [ "dust", "the", "bites", "one", "Another" ]
Specifications
{{Specifications}}
Browser compatibility
{{Compat}}
See also
- Polyfill of
Symbol.split
incore-js
{{jsxref("Symbol.match")}}
{{jsxref("Symbol.matchAll")}}
{{jsxref("Symbol.replace")}}
{{jsxref("Symbol.search")}}
{{jsxref("String.prototype.split()")}}
RegExp.prototype[Symbol.split]()