Dnes jsem našel malý JavaScriptový klenot, který se může v budoucnu hodit. Řetězcovou metodu split()
pravděpodobně znáte .
Zavolejte jej na řetězec, definujte oddělovač a přijměte pole jeho podřetězců.
const string = "Hello party people!";
console.log(string.split(' '));
// Array(3) [ "Hello", "party", "people!" ]
První funkční parametr, oddělovač, může být řetězcová hodnota, ale také regulární výraz. Pomocí regulárního výrazu můžete rozdělit původní řetězec v závislosti na různých oddělovačích.
const string = "Hello_party-people!";
console.log(string.split(/[-_]/));
// Array(3) [ "Hello", "party", "people!" ]
Bez ohledu na to, zda je vaším oddělovačem řetězcová hodnota nebo regulární výraz, jeho hodnota obvykle není zahrnuta ve výsledném poli. MDN uvádí tuto funkci takto:
Po nalezení separator
je z řetězce odstraněn a podřetězce jsou vráceny v poli.
Zde je však drobnost JavaScriptu:pokud jako oddělovač použijete regulární výraz a tento regulární výraz zahrnuje zachycení paratezí ((
a )
), odpovídající hodnoty jsou zahrnuty do výsledku. 😲
const string = "Hello_party-people!";
console.log(string.split(/([-_])/));
// Array(5) [ "Hello", "_", "party", "-", "people!" ]
Nebyl jsem si tohoto chování vědom a vsadím se, že může nahradit nějakou složitou logiku regulárního výrazu!