Symbol.split
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.splitincore-js {{jsxref("Symbol.match")}}{{jsxref("Symbol.matchAll")}}{{jsxref("Symbol.replace")}}{{jsxref("Symbol.search")}}{{jsxref("String.prototype.split()")}}RegExp.prototype[Symbol.split]()