рд╡рд╣ рд╕рд╛рдордЧреНрд░реА, рдЬрд┐рд╕рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХрд╛ рдкрд╣рд▓рд╛ рднрд╛рдЧ рдЖрдЬ рд╣рдо рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдирдП рдорд╛рдирдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИ, рдЬрд┐рдирдХреА рдЪрд░реНрдЪрд╛
Google I / O 2019 рд╕рдореНрдореЗрд▓рди рдореЗрдВ рдХреА рдЧрдИ рдереАред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣рд╛рдВ рд╣рдо рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдХреНрд▓рд╛рд╕ рдлреАрд▓реНрдбреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред

рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рдЬрд╛рдБрдЪ
рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ (рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐, рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ - RegEx рдпрд╛ RegExp) рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рддрдХрдиреАрдХ рд╣реИ рдЬрд┐рд╕реЗ рдХрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдЖрдк рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдЯрд┐рд▓ рдкреИрдЯрд░реНрди рджреНрд╡рд╛рд░рд╛ рддрд╛рд░ рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреА рдЦреЛрдЬ рдХрд░рдирд╛ред рд╣рд╛рд▓ рддрдХ рддрдХ, рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╕рдм рдХреБрдЫ рдерд╛ рд▓реЗрдХрд┐рди рд▓реБрдХрдмреИрдХрд╣рд╛рдЗрдВрдбред
рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкреВрд░реНрд╡рд╡реНрдпрд╛рдкреА рдЪреЗрдХ рдХреНрдпрд╛ рд╣реИ, рдкрд╣рд▓реЗ рд▓реБрдХрд╣реИрдбреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред
тЖТ
рджреВрд╕рд░рд╛ рднрд╛рдЧCheck рдЕрдЧреНрд░рд┐рдо рдЬрд╛рдВрдЪ
рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдкреНрд░рдореБрдЦ рдЬрд╛рдВрдЪ рдХреЗ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдЖрдкрдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдЬрдм рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреНрдп рдЯреБрдХрдбрд╝реЗ рдЙрдирдХреЗ рджрд╛рдИрдВ рдУрд░ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдЯреНрд░рд┐рдВрдЧ
MangoJuice, VanillaShake, GrapeJuice
рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп
MangoJuice, VanillaShake, GrapeJuice
рдЖрдк рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЕрдЧреНрд░рдгреА рдЪреЗрдХ рдХреЗ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╢рдмреНрдж рдХрд╛ рддреБрд░рдВрдд
Juice
рдкрд╛ рд╕рдХреЗрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпреЗ
Mango
рдФрд░
Grape
рд╢рдмреНрдж рд╣реИрдВред
рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдЧреНрд░рдгреА рдЪреЗрдХ рд╣реИрдВред рдпреЗ рдкреЙрдЬрд┐рдЯрд┐рд╡ рд▓реБрдХрд╣реЗрдб рдФрд░ рдирд┐рдЧреЗрдЯрд┐рд╡ рд▓реБрдХрд╣реЗрдб рд╣реИрдВред
рд╕рдХрд╛рд░рд╛рддреНрдордХ рд▓реАрдб рдХреА рдЬрд╛рдБрдЪ
рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЕрдЧреНрд░рдгреА рдЪреЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рджрд╛рдИрдВ рдУрд░ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЕрдиреНрдп, рдкрд╣рд▓реЗ рд╕реЗ рдЬреНрдЮрд╛рдд рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВред рдЗрд╕ рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
/[a-zA-Z]+(?=Juice)/
рдпрд╣ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЖрдкрдХреЛ
Juice
рд╢рдмреНрдж рдХреЗ рдмрд╛рдж рд▓реЛрдЕрд░рдХреЗрд╕ рдпрд╛ рдЕрдкрд░рдХреЗрд╕ рдЕрдХреНрд╖рд░реЛрдВ рд╕реЗ рдпреБрдХреНрдд рд╢рдмреНрджреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреИрдкреНрдЪрд░ рд╕рдореВрд╣реЛрдВ рдХреЗ рд╕рд╛рде рдЕрдЧреНрд░рдгреА рдФрд░ рдкреВрд░реНрд╡рд╡реНрдпрд╛рдкреА рдЬрд╛рдВрдЪ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рднреНрд░рдорд┐рдд рди рдХрд░реЗрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрди рдЬрд╛рдБрдЪреЛрдВ рдХреА рд╢рд░реНрддреЗрдВ рдХреЛрд╖реНрдардХ рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд┐рд╕реНрдЯрдо рдЙрдиреНрд╣реЗрдВ рдХреИрдкреНрдЪрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЖрдЗрдП рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд▓реАрдб рдЪреЗрдХ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛ рджреЗрдЦреЗрдВред
const testString = "MangoJuice, VanillaShake, GrapeJuice"; const testRegExp = /[a-zA-Z]+(?=Juice)/g; const matches = testString.match( testRegExp ); console.log( matches );
рдирдХрд╛рд░рд╛рддреНрдордХ рд▓реАрдб рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ
рдпрджрд┐ рд╣рдо рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдкрд░реЛрдХреНрдд рдкрдВрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдирдХрд╛рд░рд╛рддреНрдордХ рдЕрдЧреНрд░рдгреА рдЬрд╛рдВрдЪ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рддрдВрддреНрд░, рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЖрдкрдХреЛ рдЙрди рд╢рдмреНрджреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП
Juice
рд╢рдмреНрдж рдирд╣реАрдВ рд╣реИред рдирдХрд╛рд░рд╛рддреНрдордХ рдЕрдЧреНрд░рдгреА рдЪреЗрдХ рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЬрд╛рдВрдЪ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рдорд╛рди рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рдЬреЛ рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддреАрдХ
=
(рдмрд░рд╛рдмрд░) рдПрдХ рдкреНрд░рддреАрдХ рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИ
!
(рд╡рд┐рд╕реНрдордпрд╛рджрд┐рдмреЛрдзрдХ рдЪрд┐рд╣реНрди)ред рдпрд╣рд╛рдБ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
/[a-zA-Z]+(?!Juice)/
рдпрд╣ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЖрдкрдХреЛ рдЙрди рд╕рднреА рд╢рдмреНрджреЛрдВ рдХреЛ рдЪреБрдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдЬрд┐рдирдореЗрдВ рдХреЛрдИ рд╢рдмреНрдж
Juice
рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рд▓рд╛рдЗрди рдХреЗ рд╕рднреА рд╢рдмреНрджреЛрдВ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (
MangoJuice, VanillaShake, GrapeJuice
)ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐, рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣рд╛рдВ рдПрдХ рднреА рд╢рдмреНрдж
Juice
рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдирддреАрдЬрддрди, рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
/(Mango|Vanilla|Grape)(?!Juice)/
рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдк
Mango
, рдпрд╛
Vanilla
, рдпрд╛
Grape
рд╢рдмреНрджреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдХреЛрдИ рд╢рдмреНрдж
Juice
рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
const testString = "MangoJuice, VanillaShake, GrapeJuice"; const testRegExp = /(Mango|Vanilla|Grape)(?!Juice)/g; const matches = testString.match( testRegExp ); console.log( matches );
тЦН рдкреВрд░реНрд╡рд╡реНрдпрд╛рдкреА рдЬрд╛рдВрдЪ
рдЕрдЧреНрд░рдгреА рдЪреЗрдХ рдХреЗ рд╡рд╛рдХреНрдп рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛, рдкреВрд░реНрд╡рд╡реНрдпрд╛рдкреА рдЬрд╛рдВрдЪ рдХреЗ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╡рд░реНрдгреЛрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдореЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдпрджрд┐ рдЗрди рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреЗ рдмрд╛рдИрдВ рдУрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреИрдЯрд░реНрди рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рд╕реНрдЯреНрд░рд┐рдВрдЧ
FrozenBananas, DriedApples, FrozenFish
рддреЛ рд╣рдо рд╢рдмреНрджреЛрдВ рдХреЗ рдмрд╛рдИрдВ рдУрд░ рд╢рдмреНрдж рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреВрд░реНрд╡рд╡реНрдпрд╛рдкреА рдЬрд╛рдВрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ
Frozen
рд╢рдмреНрдж рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ,
Bananas
рдФрд░
Fish
рд╢рдмреНрдж рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВред
рдЕрдЧреНрд░рдгреА рдЬрд╛рдВрдЪ, рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреВрд░реНрд╡рд╡реНрдпрд╛рдкреА рдЬрд╛рдВрдЪ (рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЦреЛрдЬ) рдФрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рдкреВрд░реНрд╡рд╡реНрдпрд╛рдкреА рдЬрд╛рдВрдЪ (рдирдХрд╛рд░рд╛рддреНрдордХ рдпрд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рджрд┐рдЦрд╛рд╡рдЯ) рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдРрд╕рд╛ рд╣реА рд╣реИред
рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреВрд░реНрд╡рд╡реНрдпрд╛рдкреА рд╕рдореАрдХреНрд╖рд╛
рдкреЙрдЬрд┐рдЯрд┐рд╡ рд░реЗрдЯреНрд░реЛрд╕реНрдкреЗрдХреНрдЯрд┐рд╡ рдЪреЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╛рдИрдВ рдУрд░ рдХреЗ рдкреИрдЯрд░реНрди рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЕрдиреНрдп рдкреИрдЯрд░реНрди рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЪреЗрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
/(?<=Frozen)[a-zA-Z]+/
рдкреНрд░рддреАрдХ
<
рдЙрдкрдпреЛрдЧ рдпрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рдореБрдЦ рдЬрд╛рдВрдЪреЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╣рд┐рдд рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рджрд╛рдИрдВ рдУрд░ рд╕реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рдИрдВ рдУрд░ рд╣реИред рдЙрдкрд░реЛрдХреНрдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк
Frozen
рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд╢рдмреНрджреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
const testString = "FrozenBananas, DriedApples, FrozenFish"; const testRegExp = /(?<=Frozen)[a-zA-Z]+/g; const matches = testString.match( testRegExp ); console.log( matches );
рдирдХрд╛рд░рд╛рддреНрдордХ рдкреВрд░реНрд╡рд╡реНрдпрд╛рдкреА рдЬрд╛рдВрдЪ
рдирдХрд╛рд░рд╛рддреНрдордХ рдкреВрд░реНрд╡рд╡реНрдпрд╛рдкреА рдЬрд╛рдВрдЪ рдХрд╛ рддрдВрддреНрд░ рдЖрдкрдХреЛ рдЙрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдкреИрдЯрд░реНрди рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдмрд╛рдИрдВ рдУрд░ рдХреЛрдИ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреИрдЯрд░реНрди рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рдРрд╕реЗ рд╢рдмреНрджреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ
FrozenBananas, DriedApples, FrozenFish
рд▓рд╛рдЗрди рдореЗрдВ
Frozen
рд╕рд╛рде рд╢реБрд░реВ рдирд╣реАрдВ
FrozenBananas, DriedApples, FrozenFish
, рддреЛ рдЖрдк рдЗрд╕ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
/(?<!Frozen)[a-zA-Z]+/
рд▓реЗрдХрд┐рди, рдЗрд╕ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рд╕рднреА рд╢рдмреНрджреЛрдВ рдХрд╛ рдЪрдпрди рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА
Frozen
рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:
/(?<!Frozen)(Bananas|Apples|Fish)/
рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
const testString = "FrozenBananas, DriedApples, FrozenFish"; const testRegExp = /(?<!Frozen)(Bananas|Apples|Fish)/g; const matches = testString.match( testRegExp ); console.log( matches );
тЖТ рд╕рд╣рд╛рдпрддрд╛
рдпрд╣ рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдЕрдиреНрдп рдЦрдВрдб рддрдХрдиреАрдХреА рд╕рдорд┐рддрд┐ 39 (рддрдХрдиреАрдХреА рд╕рдорд┐рддрд┐ 39, рдЯреАрд╕реА 39) рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдЬреЗрдПрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рдордВрдЬрд╕реНрдп рдХреЗ рдордВрдЪ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдИрд╕реАрдПрдордПрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдИрд╕реАрдПрдордП рдЗрдВрдЯрд░рдиреЗрд╢рдирд▓ рдореЗрдВ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдРрд╕реЗ рдЕрдиреБрднрд╛рдЧреЛрдВ рдореЗрдВ, Chrome рдФрд░ Node.js (рдФрд░ рдХрднреА-рдХрднреА рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░) рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдбреЗрдЯрд╛ рднреА рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рд╕рдВрдмрдВрдзрд┐рдд рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХреНрд▓рд╛рд╕ рдлреАрд▓реНрдбреНрд╕
рдХреНрд▓рд╛рд╕ рдлрд╝реАрд▓реНрдб рдПрдХ рдирдпрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдирд┐рд░реНрдорд╛рдг рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд▓рд╛рд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдмрд╛рд╣рд░ рдХреНрд▓рд╛рд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ (рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕) рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд░реНрдЧ рдлрд╝реАрд▓реНрдб рд╣реИрдВ: рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ рдлрд╝реАрд▓реНрдб рдФрд░ рдирд┐рдЬреА рдХреНрд▓рд╛рд╕ рдлрд╝реАрд▓реНрдбред
тЦНPublic рд╡рд░реНрдЧ рдХреЗ рдХреНрд╖реЗрддреНрд░
рд╣рд╛рд▓ рддрдХ рддрдХ, рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдХреНрд▓рд╛рд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдЕрдВрджрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдерд╛ред рдпреЗ рдЧреБрдг рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ (рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ) рдереЗред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрдХреНрд╖рд╛ (рдСрдмреНрдЬреЗрдХреНрдЯ) рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдХреЗ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдВрдкрддреНрддрд┐ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
class Dog { constructor() { this.name = 'Tommy'; } }
рдЬрдм рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛ рдЬреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╡рд░реНрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдЧрд╛, рддреЛ рдмрд╛рд▓ рд╡рд░реНрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдореЗрдВ
super()
рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдмрд╛рд▓ рд╡рд░реНрдЧ рдореЗрдВ рдЕрдкрдиреА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред рдпрд╣рд╛рдБ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
class Animal {} class Dog extends Animal { constructor() { super();
рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд╣рд░ рд╡рд░реНрдЧ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рд╕рд┐рд╕реНрдЯрдо
super()
рдХреЛ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХреЙрд▓ рдХрд░реЗрдЧрд╛ред
class Animal {} class Dog extends Animal { sound = 'Woof! Woof!';
рдЬрдм рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ
super()
рдХреЙрд▓рд┐рдВрдЧ рд╣реЛрддреА рд╣реИ
super()
рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╕рднреА рджрд▓реАрд▓реЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдЬрдм рд╡рд░реНрдЧ рдЙрджрд╛рд╣рд░рдг (рдпрд╣ рдорд╛рдирдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рдирд┐рдЬреА рд╡рд░реНрдЧ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЦрд╛рд╕ рдирд╣реАрдВ рд╣реИ)ред рдпрджрд┐ рдореВрд▓ рд╡рд░реНрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЗ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рддрд░реНрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЖрдкрдХреЛ
super()
рдЦреБрдж рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪрд╛рдЗрд▓реНрдб рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╕рдордп рдореВрд▓ рд╡рд░реНрдЧ рдХреЗ рдирд┐рд╣рд┐рдд рдирд┐рд░реНрдорд╛рддрд╛ рдХреЙрд▓ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред
class Animal { constructor( ...args ) { console.log( 'Animal args:', args ); } } class Dog extends Animal { sound = 'Woof! Woof!';
Fields рдирд┐рдЬреА рд╡рд░реНрдЧ рдХреЗ рдХреНрд╖реЗрддреНрд░
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ,
public
,
private
рдпрд╛
protected
рдЬреИрд╕реЗ рд╡рд░реНрдЧ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдХреЛрдИ рдкрд╣реБрдБрдЪ рд╕рдВрд╢реЛрдзрдХ рдирд╣реАрдВ рд╣реИрдВред рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рднреА рдЧреБрдг рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЙрди рддрдХ рдкрд╣реБрдВрдЪ рдЕрд╕реАрдорд┐рдд рд╣реИред рдирд┐рдЬреА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рдорд╛рди рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреА рд╕рдВрдкрддреНрддрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдХрдЯрддрдо рдЪреАрдЬ
Symbol
рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЖрдкрдиреЗ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ (рдХреЗрд╡рд▓ рдЕрдВрдбрд░рд╕реНрдХреЛрд░) рдЧреБрдг рд╡рд╛рд▓реЗ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдЧреБрдгреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рднреАрддрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░рд╣ рдХреА рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд╣реИ рдЬреЛ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдпрд╣ рдЧреБрдгреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рддрд┐рдмрдВрдз рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдирд┐рдЬреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рддрдВрддреНрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдЕрдВрджрд░ рд╣реА рд╡рд░реНрдЧ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рд╕реБрд▓рдн рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдмрд╛рд╣рд░ рд╕реЗ рдирд╣реАрдВ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХрдХреНрд╖рд╛ (рдСрдмреНрдЬреЗрдХреНрдЯ) рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓реЗрдВ рдФрд░ рд╡рд░реНрдЧ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдмрд╛рд╣рд░ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдЬрдм
_
рдЙрдкрд╕рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
class Dog { _sound = 'Woof! Woof!';
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ,
_
рдЙрдкрд╕рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╣рдорд╛рд░реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдирд┐рдЬреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдлрд╝реАрд▓реНрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдЙрдирдХреЗ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рдЙрдВрдб рдЪрд┐рд╣реНрди (
#
) рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЙрдкрд╕рд░реНрдЧ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рддрд░рд╣ рд╕реЗ рдШреЛрд╖рд┐рдд рд╡рд╕реНрддреБ рдХреА рдирд┐рдЬреА рд╕рдВрдкрддреНрддрд┐ рддрдХ рдЕрдирдзрд┐рдХреГрдд рдкрд╣реБрдВрдЪ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреА:
SyntaxError: Undefined private field
рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
class Dog { #sound = 'Woof! Woof!';
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдирд┐рдЬреА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдЙрд╕ рд╡рд░реНрдЧ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╡рдВрд╢рдЬ рд╡рд░реНрдЧ рд╕реАрдзреЗ рдореВрд▓ рд╡рд░реНрдЧ рдХреЗ рд╕рдорд╛рди рдЧреБрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдирд┐рдЬреА (рдФрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ) рдХреНрд╖реЗрддреНрд░ рдЙрдирдореЗрдВ рдХреБрдЫ рдорд╛рди рд▓рд┐рдЦреЗ рдмрд┐рдирд╛ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
class Dog { #name; constructor( name ) { this.#name = name; } showName() { console.log( this.#name ); } }
тЖТ рд╕рд╣рд╛рдпрддрд╛
рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд┐рдзрд┐ред MatchAll ()
String
рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдореЗрдВ рдПрдХ
.match()
рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреА рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛рддреА рд╣реИ рдЬреЛ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
const colors = "#EEE, #CCC, #FAFAFA, #F00, #000"; const matchColorRegExp = /([A-Z0-9]+)/g; console.log( colors.match( matchColorRegExp ) );
рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдкрд╛рдП рдЧрдП рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА (рдЬреИрд╕реЗ рд╕реВрдЪрдХрд╛рдВрдХ) рдирд╣реАрдВ рджреА рдЧрдИ рд╣реИред рдпрджрд┐ рдЖрдк
.match()
рд╡рд┐рдзрд┐ рдореЗрдВ рджреА рдЧрдИ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕реЗ
g
рдзреНрд╡рдЬ
.match()
, рддреЛ рдпрд╣ рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛рдПрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрдЧреАред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдХреЗрд╡рд▓ рдкрд╣рд▓рд╛ рдЯреБрдХрдбрд╝рд╛ рдорд┐рд▓реЗрдЧрд╛ред
const colors = "#EEE, #CCC, #FAFAFA, #F00, #000"; const matchColorRegExp = /#([A-Z0-9]+)/; console.log( colors.match( matchColorRegExp ) );
рдХреБрдЫ рд╕рдорд╛рди рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдХрдИ рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╡рд┐рдзрд┐
.exec()
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рди рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╡реЗ рдЙрд╕реА рд╕реЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣рд╛рдВ рд╣рдореЗрдВ
while
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдХрд┐
.exec()
null
рддрдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛ред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐
.exec()
рдПрдХ
.exec()
рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
const colors = "#EEE, #CCC, #FAFAFA, #F00, #000"; const matchColorRegExp = /#([A-Z0-9]+)/g;
рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдм рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд┐рдзрд┐
.matchAll()
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ
.matchAll()
рджреЗрддрд╛ рд╣реИред рдЗрд╕
.next()
рдХреЗ
.next()
рдкрджреНрдзрддрд┐ рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓ рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдореЛрдВ рд╕реЗ рдЕрдЧрд▓рд╛ рддрддреНрд╡
.next()
ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
const colors = "#EEE, #CCC, #FAFAFA, #F00, #000"; const matchColorRegExp = /#([A-Z0-9]+)/g; console.log( ...colors.matchAll( matchColorRegExp ) );
тЖТ рд╕рд╣рд╛рдпрддрд╛
- TC39: рдЪрд░рдг 4
- рдХреНрд░реЛрдо: 73+
- рдиреЛрдб: 12+
- рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕: 67+
рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдирд╛рдорд┐рдд рд╕рдореВрд╣
рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рддрдВрддреНрд░ рдХреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╕рдореВрд╣реЛрдВ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕рдорд╛рди рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рдереЛрдбрд╝реА рдЕрд▓рдЧ рд╣реИред рдЕрд░реНрдерд╛рддреН, рдЬрдм рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, RegEx- рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдХреЛрд╖реНрдардХ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╕рд┐рд╡рд╛рдп рдЬрдм рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреВрд░реНрд╡рд╡реНрдпрд╛рдкреА рдпрд╛ рдЙрдиреНрдирдд рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рддреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдПрдХ рд╕рдореВрд╣ рдмрди рдЬрд╛рддрд╛ рд╣реИред
рд╕рдореВрд╣ рджреНрд╡рд╛рд░рд╛ рдкрдХрдбрд╝реЗ рдЧрдП рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдЯреБрдХрдбрд╝реЗ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрдВрдЧреЗред
рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рд╕рд░рдгреА рдХрд╛ рдкрд╣рд▓рд╛ рддрддреНрд╡ рд╡рд╣ рд╣реИ рдЬреЛ рд╕рдВрдкреВрд░реНрдг рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рд╡рд╣ рд╣реИ рдЬреЛ рд╕рдореВрд╣ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдЗрд╕ рд╕рд░рдгреА рддрддреНрд╡ рд╣реИ:
["#EEE", "EEE", index: 0, input: "<colors>"]
рдпрджрд┐ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдХрдИ рд╕рдореВрд╣ рд╣реИрдВ, рддреЛ рд╡реЗ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдЙрдирдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рдХреНрд░рдо рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рдорд┐рд▓реЗрдВрдЧреЗред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
const str = "My name is John Doe."; const matchRegExp = /My name is ([az]+) ([az]+)/i; const result = str.match( matchRegExp );console.log( result );
рдпрд╣рд╛рдВ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЕрдиреБрд░реВрдк рдкреВрд░реА рд▓рд╛рдЗрди рд╣реИред рджреВрд╕рд░рд╛ рдФрд░ рддреАрд╕рд░рд╛ рддрддреНрд╡ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕рдореВрд╣реЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрдмреНрдЬрд╛ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдирд╛рдорд┐рдд рд╕рдореВрд╣реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐
groups
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рднреАрддрд░ рдХреМрди рд╕реЗ рд╕рдореВрд╣ рдХреИрдкреНрдЪрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рдирдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо рд╕рдореВрд╣реЛрдВ рдХреЛ рд╕реМрдВрдкреЗ рдЧрдП рдирд╛рдореЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВред
const str = "My name is John Doe."; const matchRegExp = /My name is (?<firstName>[az]+) (?<lastName>[az]+)/i; const result = str.match( matchRegExp ); console.log( result ); console.log( result.groups );
рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдирд╛рдорд┐рдд рд╕рдореВрд╣
.matchAll()
рдкрджреНрдзрддрд┐ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
тЖТ рд╕рд╣рд╛рдпрддрд╛
рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП ...
рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдХреНрдпрд╛ рдЖрдкрдиреЗ рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рд╕реА рднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╡рд╛рдЪрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ?
