рдореЛрдЬрд┐рд▓рд╛рд▓реЗ рдХреНрд░реЛрдорд┐рдпрдорд╕рдБрдЧ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЗрдиреНрдЬрд┐рди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕реНрд╡рд┐рдЪ рдЧрд░реНрдпреЛ

SpiderMonkey JavaScript рдЗрдиреНрдЬрд┐рди Firefox рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдпреЛ рд╣рд╕реНрддрд╛рдиреНрддрд░рдг рд╣рд╛рд▓рдХреЛ рдХреЛрдбрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрдХреЛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди Irregexp рдХреНрд░реЛрдорд┐рдпрдо рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдЖрдзрд╛рд░рд┐рдд рдмреНрд░рд╛рдЙрдЬрд░рд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ V8 JavaScript рдЗрдиреНрдЬрд┐рдирдмрд╛рдЯред RegExp рдХреЛ рдирдпрд╛рдБ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬреБрди 78 рдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдлрд╛рдпрд░рдлрдХреНрд╕ 30 рдорд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдиреЗрдЫ, рд░ рдмреНрд░рд╛рдЙрдЬрд░рдорд╛ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╕рдмреИ рд╣рд░рд╛рдЗрд░рд╣реЗрдХреЛ ECMAScript рддрддреНрд╡рд╣рд░реВ рд▓реНрдпрд╛рдЙрдиреЗрдЫред

рдпреЛ рдиреЛрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ рдХрд┐ SpiderMonkey рдорд╛ RegExp рдЗрдиреНрдЬрд┐рди рдПрдХ рдЕрд▓рдЧ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрдХреЛ рд░реВрдкрдорд╛ рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рдпрд╕рд▓рд╛рдИ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕реНрд╡рддрдиреНрддреНрд░ рд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдирдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрдд рдмрдирд╛рдЙрдБрдЫ рдХреЛрдб рдЖрдзрд╛рд░рдорд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрдиред рдореЛрдбреБрд▓рд░рд┐рдЯреАрд▓реЗ 2014 рдорд╛ рдлрд╛рдпрд░рдлрдХреНрд╕рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ YARR RegExp рдЗрдиреНрдЬрд┐рдирд▓рд╛рдИ V8 рдмрд╛рдЯ Irregexp рдЗрдиреНрдЬрд┐рдирдХреЛ рдлреЛрд░реНрдХрд╕рдБрдЧ рдмрджрд▓реНрди рд╕рдореНрднрд╡ рдмрдирд╛рдпреЛред Irregexp рд▓рд╛рдИ V8 API рдорд╛ рдмрд╛рдБрдзрд┐рдПрдХреЛ рдЫ, рдЧрд╛рд░реНрдмреЗрдЬ рдХрд▓реЗрдХреНрдЯрд░рдорд╛ рдмрд╛рдБрдзрд┐рдПрдХреЛ рдЫ, рд░ V8-рд╡рд┐рд╢реЗрд╖ рд╕реНрдЯреНрд░рд┐рдЩ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд░ рд╡рд╕реНрддреБ рдореЛрдбреЗрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред 2014 рдорд╛ SpiderMonkey рдХреЛ рдЖрдиреНрддрд░рд┐рдХ API рдорд╛ рдЕрдиреБрдХреВрд▓рди рдЧрд░реНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛, Irregexp рдЗрдиреНрдЬрд┐рди рдЖрдВрд╢рд┐рдХ рд░реВрдкрдорд╛ рдкреБрди: рд▓реЗрдЦрд┐рдПрдХреЛ рдерд┐рдпреЛ, рд░ рд╕рдореНрднрд╡ рднрдПрд╕рдореНрдо '\u' рдЭрдгреНрдбрд╛ рдЬрд╕реНрддрд╛ рдЙрджреАрдпрдорд╛рди рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВред рд╣рд╕реНрддрд╛рдиреНрддрд░рдг рдореЛрдЬрд┐рд▓рд╛ рджреНрд╡рд╛рд░рд╛ рд░рд╛рдЦрд┐рдПрдХреЛ рдлреЛрд░реНрдХрдорд╛ред

рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬреНрдб рдлреЛрд░реНрдХ рдХрд╛рдпрдо рд░рд╛рдЦреНрди рдЧрд╛рд╣реНрд░реЛ рд░ рд╕рдВрд╕рд╛рдзрди рдЧрд╣рди рдЫред ECMAScript 2018 рдорд╛рдирдХрдорд╛ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдирдпрд╛рдБ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВрдХреЛ рдЖрдЧрдордирд╕рдБрдЧреИ, Mozilla рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ Irregexp рдмрд╛рдЯ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЧрд░реНрди рдХрд╕рд░реА рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдиреЗ рднрдиреЗрд░ рд╕реЛрдЪреЗрдХрд╛ рдЫрдиреНред рдмрд╛рд╣рд┐рд░рдХреЛ рдмрд╛рдЯреЛрдХреЛ рд░реВрдкрдорд╛, рдПрдХ рд░реНрдпрд╛рдкрд┐рдЩ рдЕрд╡рдзрд╛рд░рдгрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рдЬрд╕рд▓реЗ SpiderMonkey рдорд╛ рд▓рдЧрднрдЧ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд Irregexp рдЗрдиреНрдЬрд┐рди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ (рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ "# рд╕рдорд╛рд╡реЗрд╢" рдмреНрд▓рдХрд╣рд░реВрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдирдорд╛ рдорд╛рддреНрд░ рдШрдЯрд╛рдЗрдиреНрдЫ)ред

рдореЛрдЬрд┐рд▓рд╛рд▓реЗ рдХреНрд░реЛрдорд┐рдпрдорд╕рдБрдЧ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЗрдиреНрдЬрд┐рди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕реНрд╡рд┐рдЪ рдЧрд░реНрдпреЛ

рдлреНрд░реЗрдорд╡рд░реНрдХрд▓реЗ рдореЗрдореЛрд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд░ рдХреЛрдб рдЙрддреНрдкрд╛рджрди рдХрд╛рд░реНрдпрд╣рд░реВ, рд╕рд╛рдереИ рдореЗрдореЛрд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЗрдиреНрдЬрд┐рдирд╣рд░реВ, рдХреЛрдб рдЬреЗрдиреЗрд░реЗрдЯрд░рд╣рд░реВ, рд░ рд╕реНрдкрд╛рдЗрдбрд░рдордЩреНрдХреА рд╕рдВрд░рдЪрдирд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХрд╛ рдиреЗрдЯрд┐рдн рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рд╣рд░реВ рд╕рд╣рд┐рдд рдЖрд╡рд╢реНрдпрдХ V8-рд╡рд┐рд╢реЗрд╖ рдХреНрд╖рдорддрд╛рд╣рд░реВ рд╕рд╣рд┐рдд Irregexp рд▓рд╛рдИ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

RegExp рдЗрдиреНрдЬрд┐рди рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрдирд╛рд▓реЗ рдлрд╛рдпрд░рдлрдХреНрд╕рд▓реЗ рдирд╛рдорд┐рдд рдХреНрдпрд╛рдкреНрдЪрд░рд╣рд░реВ, рдпреБрдирд┐рдХреЛрдб рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░ рдХреНрд▓рд╛рд╕ рдПрд╕реНрдХреЗрдкрд┐рдЩ, рдбрдЯрдЕрд▓ рдлреНрд▓реНрдпрд╛рдЧ, рд░ рд▓реБрдХрдмрд┐рд╣рд╛рдЗрдиреНрдб рдореЛрдб рдЬрд╕реНрддрд╛ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗрдЫ:

  • рдирд╛рдо рджрд┐рдЗрдПрдХреЛ рд╕рдореВрд╣рд╣рд░реВ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдорд┐рд▓реНрдиреЗ рдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛рдХреЛ рд╕рдЯреНрдЯрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╛рдорд╣рд░реВрд╕рдБрдЧ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рджреНрд╡рд╛рд░рд╛ рдорд┐рд▓рд╛рдЗрдПрдХреЛ рд╕реНрдЯреНрд░рд┐рдЩрдХреЛ рднрд╛рдЧрд╣рд░реВ рд╕рдореНрдмрджреНрдз рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, "/(\d{4})-(\d{2})-(\d{ 2})/" рддрдкрд╛рдЗрдБ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ "/( ? \d{4})-(? \d{2})-(? \d{2})/" рд░ рд╡рд░реНрд╖ рдкрд╣реБрдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдирддрд┐рдЬрд╛ [1] рдорд╛рд░реНрдлрдд рд╣реЛрдЗрди, рддрд░ result.groups.year рдорд╛рд░реНрдлрдд)ред
  • рднрд╛рдЧреНрдиреЗ рдХрдХреНрд╖рд╛рд╣рд░реВ рдпреБрдирд┐рдХреЛрдб рд╡рд░реНрдгрд╣рд░реВрд▓реЗ рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ \p{...} рд░ \P{...} рдердкреНрдЫрдиреН, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, \p{Number} рд▓реЗ рд╕рдЩреНрдЦреНрдпрд╛рд╣рд░реВ (тСа рдЬрд╕реНрддрд╛ рдкреНрд░рддреАрдХрд╣рд░реВ рд╕рд╣рд┐рдд), \p{рдЕрд▓реНрдлрд╛рдмреЗрдЯрд┐рдХ} - рдЕрдХреНрд╖рд░рд╣рд░реВ (рд╕рд╣рд┐рдд) рд╕рдмреИ рд╕рдореНрднрд╛рд╡рд┐рдд рд╡рд░реНрдгрд╣рд░реВрд▓рд╛рдИ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджрдЫред hieroglyphs ), \p{Math} тАФ рдЧрдгрд┐рддреАрдп рдкреНрд░рддреАрдХрд╣рд░реВ, рдЖрджрд┐ред
  • рдлреНрд▓реНрдпрд╛рдЧ dotAll "ред" рдорд╛рд╕реНрдХрд▓рд╛рдИ рдЖрдЧреЛ рд▓рдЧрд╛рдЙрдБрдЫред рд░реЗрдЦрд╛ рдлрд┐рдб рд╡рд░реНрдгрд╣рд░реВ рд╕рд╣рд┐рддред
  • рдореЛрдб рдкрдЫрд╛рдбреА рд╣реЗрд░ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдорд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдХрд┐ рдПрдЙрдЯрд╛ рдврд╛рдБрдЪрд╛ рдЕрд░реНрдХреЛ рднрдиреНрджрд╛ рдЕрдЧрд╛рдбрд┐ рдЫ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдбрд▓рд░ рдЪрд┐рдиреНрд╣ рдХреНрдпрд╛рдкреНрдЪрд░ рдирдЧрд░рд┐рдХрди рдбрд▓рд░рдХреЛ рд░рдХрдо рдорд┐рд▓рд╛рдЙрдиреЗ)ред

рдкрд░рд┐рдпреЛрдЬрдирд╛ V8 рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд╕рд╣рднрд╛рдЧрд┐рддрд╛рдорд╛ рд╕рдореНрдкрдиреНрди рднрдПрдХреЛ рдерд┐рдпреЛ, рдЬрд╕рд▓реЗ рдЖрдлреНрдиреЛ рднрд╛рдЧрдХреЛ рд▓рд╛рдЧрд┐, V8 рдорд╛ Irregexp рдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рдХрдо рдЧрд░реНрди рдХрд╛рдо рдЧрд░реНрдпреЛ, рд░ SpiderMonkey рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ "#ifdef" рдмреНрд▓рдХрд╣рд░реВрд▓рд╛рдИ рдЕрд╕рдХреНрд╖рдо рдкрд╛рд░реНрдиреЗ рдХреЗрд╣реА рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рд╕рд╛рд░рд┐рдпреЛред рд╕рд╣рдпреЛрдЧ рдЖрдкрд╕реА рд╣рд┐рддрдХрд╛рд░реА рд╕рд╛рдмрд┐рдд рднрдпреЛред рддрд┐рдиреАрд╣рд░реВрдХреЛ рднрд╛рдЧрдХреЛ рд▓рд╛рдЧрд┐, рдореЛрдЬрд┐рд▓рд╛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ Irregexp рдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдкреЗрд╢ рдЧрд░реЗ рдЬрд╕рд▓реЗ рдХреЗрд╣реА рд╣рдЯрд╛рдЙрдиреЗ рдЕрд╕рдВрдЧрддрд┐рд╣рд░реВ рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдорд╛рдирдХ рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реБ рд╕рдВрдЧ рд░ рд╕реБрдзрд╛рд░ рдЧрд░реНрджреИ рдХреЛрдб рдЧреБрдгрд╕реНрддрд░ред рд╕рд╛рдереИ, рдлрд╛рдпрд░рдлрдХреНрд╕рдХреЛ рдлрдЬреНрдЬрд┐рдЩ рдкрд░реАрдХреНрд╖рдгрдХреЛ рдХреНрд░рдордорд╛, рдХреНрд░реНрдпрд╛рд╕рд╣рд░реВ рдирд┐рдореНрддреНрдпрд╛рдЙрдиреЗ Irregexp рдХреЛрдбрдорд╛ рдкрд╣рд┐рд▓реЗ рдзреНрдпрд╛рди рдирджрд┐рдЗрдПрдХрд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реА рд╣рдЯрд╛рдЗрдпреЛред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди