Symbol.split
BaselineWidely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
TheSymbol.split
static data property represents thewell-known symbolSymbol.split
. TheString.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, seeRegExp.prototype[Symbol.split]()
andString.prototype.split()
.
Try it
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 symbolSymbol.split
.
Property attributes ofSymbol.split | |
---|---|
Writable | no |
Enumerable | no |
Configurable | no |
Examples
Custom reverse split
js
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
Specification |
---|
ECMAScript® 2026 Language Specification # sec-symbol.split |