5 рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рддрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдХрдИ рд╡рд┐рд╡рд┐рдз рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдКрдВрдЯ рд╢реИрд▓реА рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЛрдб рдХреА рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:

function camelize(str) {
  return str.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, function(match, index) {
    if (+match === 0) re
turn ""; //  if (/\s+/.test(match))  
    return index === 0 ? match.toLowerCase() : match.toUpperCase();
  });
}

рдХреЛрдб рдХрд╛ рдпрд╣ рдЯреБрдХрдбрд╝рд╛, рд╡реИрд╕реЗ, "рдКрдВрдЯ" рд╢реИрд▓реА рдореЗрдВ рддрд╛рд░ рд▓рд╛рдиреЗ рдХреЗ рд╕рд╡рд╛рд▓ рдХреЗ рдЬрд╡рд╛рдм рдХреА рднреВрдорд┐рдХрд╛ рдореЗрдВ , рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдкрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╡реЛрдЯ рдПрдХрддреНрд░ рдХрд┐рдПред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡рд╣ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрд╕реА рд░реЗрдЦрд╛:

---Foo---bAr---


рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкрд░рд┐рдгрд╛рдо --- рдлреВ --- bAr ---

рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдпреЗ рддрд╛рд░, рдлрд┐рд░ рднреА, рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдЖрдк рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдк рд╡рд┐рд╢реЗрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдорджрдж рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рд╡реЗ рдЬрдЯрд┐рд▓ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕рд░рд▓ рдХрд░рддреЗ рд╣реИрдВ рдФрд░, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдРрд╕реЗ рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рдФрд░ рдмрд╣реБрдореБрдЦреА рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХрдард┐рди рдХрд╛рд░реНрдп рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЪрд▓реЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдХрдИ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред

1. String.js


рдкреБрд╕реНрддрдХрд╛рд▓рдп string.js, рдпрд╛ рдмрд╕ S, рдпрд╣ рдПрдХ рдЫреЛрдЯрд╛ (5 Kb рд╕реЗ рдХрдо рдХреА рдиреНрдпреВрдирддрдо рдФрд░ рд╕рдВрдкреАрдбрд╝рд┐рдд) рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ Node.js. рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╕реЗрдЯ рджреЗрддрд╛ рд╣реИред рдпреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ string.js, рдЬреЛ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдПрдХ рд╡рд╕реНрддреБ string.jsрдирд┐рдпрдорд┐рдд рддрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЖрд╡рд░рдг рд╣реИред

тЦНInstallation


рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП string.js, рдмрд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

npm i string

ред рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рддрд░реАрдХреЗ


рд╡рд┐рдзрд┐ рдХреЗ рдмреАрдЪ


рд╡рд┐рдзрд┐ between(left, right)рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдорд╛рд╣рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ leftрдФрд░ rightред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рджреЛ HTML рдЯреИрдЧ рдХреЗ рдмреАрдЪ рддрддреНрд╡реЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

var S = require('string');
S('<a>This is a link</a>').between('<a>', '</a>').s 
// 'This is a link'

рдКрдВрдЯ рд╡рд┐рдзрд┐


рд╡рд┐рдзрд┐ camelize()рд╕рдВрд╕рд╛рдзрд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди, рдЕрдВрдбрд░рд╕реНрдХреЛрд░, рдбреИрд╢ рдХреЛ рд╣рдЯрд╛рддреА рд╣реИ, рдФрд░ рдЗрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ "рдКрдВрдЯ" рд╢реИрд▓реА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреА рд╣реИред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рдордЧреНрд░реА рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

var S = require('string');
S('---Foo---bAr---').camelize().s; 
//'fooBar'

рдорд╛рдирд╡реАрдХрд░рдг рд╡рд┐рдзрд┐


рд╡рд┐рдзрд┐ humanize()рд╕рдВрд╕рд╛рдзрд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрдардиреАрдп рд░реВрдк рдореЗрдВ рд▓рд╛рддреА рд╣реИред рдпрджрд┐ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдРрд╕рд╛ рдХреБрдЫ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рддреЛ рдХреЛрдб рдХреА рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред

var S = require('string');
S('   capitalize dash-CamelCase_underscore trim  ').humanize().s
//'Capitalize dash camel case underscore trim'

рдкрдЯреНрдЯреАрдХрд░рдг рд╡рд┐рдзрд┐


рд╡рд┐рдзрд┐ stripPunctuation()рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрди рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдг рдЬреИрд╕реЗ рддрд╛рд░рд╛рдВрдХрди рдФрд░ рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХ рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдирд┐рдХрд╛рд▓рддреА рд╣реИред рдпрджрд┐ рдЖрдк рд╕реНрд╡рдпрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рдорд╛рд░реЛрд╣ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ - рдХрд┐рд╕реА рднреА рдЪрд░рд┐рддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓рдиреЗ рдХрд╛ рдПрдХ рдЙрдЪреНрдЪ рдЬреЛрдЦрд┐рдо рд╣реИ рдЬрд┐рд╕реЗ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

var S = require('string');
S('My, st[ring] *full* of %punct)').stripPunctuation().s; 
//My string full of punct

тЖТ рдпрд╣рд╛рдБ рдЖрдк рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рдЗрд╕рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред

2. рд╡реЛрдХ


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА Vocaрд╣рдореЗрдВ рдореВрд▓реНрдпрд╡рд╛рди рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ рдЬреЛ рддрд╛рд░ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдмрдврд╝рд╛рддреА рд╣реИрдВред рдЗрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВ:

  • рдкрд╛рддреНрд░реЛрдВ рдХрд╛ рдорд╛рдорд▓рд╛ рдмрджрд▓реЗрдВред
  • рд╕рдордпрд░реЗрдЦрд╛ рдХреЗ рдЖрд░рдВрдн рдФрд░ рдЕрдВрдд рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд░реНрдг рд╣рдЯрд╛рддрд╛ рд╣реИред
  • рджреА рдЧрдИ рд▓рдВрдмрд╛рдИ рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреЛрдбрд╝рдирд╛ред
  • рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдмрджрд▓рдирд╛, рд╢рдмреНрдж рдЬрд┐рд╕рдореЗрдВ рд╣рд╛рдЗрдлрд╝рди рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  • рд▓реИрдЯрд┐рди рдЕрдХреНрд╖рд░реЛрдВ рдореЗрдВ рдПрдХ рддрд╛рд░ рд▓реЗрдЦрдиред
  • рдкреИрдЯрд░реНрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ред
  • рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдВрдмрд╛рдИ рдХреЗ рд▓рд┐рдП рдЯреНрд░рд┐рдорд┐рдВрдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕
  • HTML рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдгреЛрдВ рдХреЛ рдмрдЪрд╛рдирд╛ред

рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдореЙрдбреНрдпреВрд▓рд░ рдбрд┐рдЬрд╛рдЗрди, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рддреЛ рдкреВрд░реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрд╛рд░реНрдпред рдпрд╣ рдЖрдкрдХреЛ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмрдВрдбрд▓реЛрдВ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛрдб рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдмрдирд╛рдП рд░рдЦрд╛ рд╣реИред

тЦНInstallation


рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Vocaрдирд┐рдореНрди рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:

npm i voca

ред рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рддрд░реАрдХреЗ


CamelCase рд╡рд┐рдзрд┐


рд╡рд┐рдзрд┐ camelCase()рдЗрд╕реЗ "рдКрдВрдЯ" рд╢реИрд▓реА рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдзрд░реНрдорд╛рдиреНрддрд░рд┐рдд рдХрд░рддреА рд╣реИред

var v = require('voca');
v.camelCase('foo Bar');
// => 'fooBar'

v.camelCase('FooBar');
// => 'fooBar'

v.camelCase('---Foo---bAr---');
// => 'fooBar'

рд▓реИрдЯрд┐рди рд╡рд┐рдзрд┐


рд╡рд┐рдзрд┐ latinize()рдЗрд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рддреА рд╣реИ рдЬреЛ рдЗрд╕реЗ рд▓реИрдЯрд┐рди рдЕрдХреНрд╖рд░реЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред

var v = require('voca');
v.latinise('cafe\u0301'); // or 'cafe╠Б'
// => 'cafe'

v.latinise('ao├╗t d├йcembre');
// => 'aout decembre'

v.latinise('   ');
// => 'kak prekrasen etot mir'

IsAlphaDigit рд╡рд┐рдзрд┐


рдпрджрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЗрд╕рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдЕрд▓реНрдлрд╝рд╛рдиреНрдпреВрдореЗрд░рд┐рдХ рд╡рд░реНрдгреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд isAlphaDigit()рдХрд░рддреА рд╣реИ, trueрддреЛ рд╡рд┐рдзрд┐ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреА рд╣реИ ред

var v = require('voca');
v.isAlphaDigit('year2020');
// => true

v.isAlphaDigit('1448');
// => true

v.isAlphaDigit('40-20');
// => false

рдЧрдгрдирд╛ рдХрд╛ рддрд░реАрдХрд╛


рдЗрд╕ рд╡рд┐рдзрд┐ countWords()рдореЗрдВ рджрд┐рдП рдЧрдП рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╢рдмреНрджреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

var v = require('voca');
v.countWords('gravity can cross dimensions');
// => 4

v.countWords('GravityCanCrossDimensions');
// => 4

v.countWords('Gravity - can cross dimensions!');
// => 4

рднрд╛рдЧрдиреЗ рдХреА рд╡рд┐рдзрд┐


рд╡рд┐рдзрд┐ escapeRegExp()рдЙрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЖрдзрд╛рд░ рдорд╛рдирддреА рд╣реИ рдЬреЛ рдЙрд╕рдХреЗ рдкрд╛рд╕ рд╕реЗ рдЧреБрдЬрд░рддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдг рдмрдЪ рдЬрд╛рддреЗ рд╣реИрдВред

var v = require('voca');
v.escapeRegExp('(hours)[minutes]{seconds}');
// => '\(hours\)\[minutes\]\{seconds\}'

тЖТ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдБVoca рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

3. achorme.js


рдпрд╣ рдкрд╛рда рдореЗрдВ URL рдФрд░ рдИрдореЗрд▓ рдкрддреЗ рдЦреЛрдЬрдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдореНрдкреИрдХреНрдЯ рдФрд░ рддреЗрдЬрд╝ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред рдпрд╣рд╛рдБ рдЗрд╕рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:

  • рдЙрдЪреНрдЪ рд╕рдВрд╡реЗрджрдирд╢реАрд▓рддрд╛, рдХрдо рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХ рджрд░ред
  • рдЖрдИрдПрдПрди рдкреВрд░реА рд╕реВрдЪреА рд╕реЗ рд▓рд┐рдВрдХ рдФрд░ рдИрдореЗрд▓ рдкрддреЗ рдХреА рдорд╛рдиреНрдпрддрд╛ред
  • рдкреЛрд░реНрдЯ рдирдВрдмрд░реЛрдВ рдХреА рд╡реИрдзрддрд╛ (рдпрджрд┐ рдХреЛрдИ рд╣реЛ)ред
  • рдЖрдИрдкреА тАЛтАЛрдкрддреЗ рдХрд╛ рд╕рддреНрдпрд╛рдкрди (рдпрджрд┐ рдЙрдкрд▓рдмреНрдз рд╣реЛ)ред
  • рд▓реИрдЯрд┐рди рд╡рд░реНрдгреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦреЗ рдЧрдП URL рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред

тЦНInstallation


рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, anchorme.jsрдирд┐рдореНрди рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:

npm i anchorme

тЦНUse


import anchorme from "anchorme"// 
//var anchorme = require("anchorme").default;
const input = "some text with a link.com"const resultA = anchorme(input);
//some text with a <a href="http://link.com">link.com</a>

рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

тЖТ рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдБanchorme.js рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

4. рдЕрдВрдбрд░рд╕реНрдХреЛрд░.рд╕реНрдЯреНрд░рд┐рдВрдЧ


рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП underscore.stringрдПрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИ underscore.js, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрд▓рдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ underscore.jsред рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдерд╛ prototype.js, right.jsрдФрд░ underscore.jsред

рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдХрдИ рдЙрдкрдпреЛрдЧреА рдХрд╛рд░реНрдп рджреЗрддрд╛ рд╣реИред рдпреЗ рдЙрдирдореЗ рд╕реЗ рдХреБрдЫ рд╣реИ:

  • рдкреВрдВрдЬреА рд▓рдЧрд╛рдирд╛ ();
  • рд╕реНрд╡рдЪреНрдЫ ();
  • рд╢рд╛рдорд┐рд▓ рд╣реИрдВ ();
  • рдЧрд┐рдирддреА ();
  • рдПрд╕реНрдХреЗрдк HTML ();
  • unescapeHTML ();
  • рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдирд╛ ();
  • рдмреНрдпрд╛рд╣ ();
  • рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЛ ();
  • рдЗрд╕реА рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ ();
  • рд╢реАрд░реНрд╖рдХ ();
  • рдЯреНрд░рд┐рдо ();
  • truncate ()ред

тЦНInstallation


рдпрд╣рд╛рдВ рд╡рд╣ рдХрдорд╛рдВрдб рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

npm i underscore.string

ред рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рддрд░реАрдХреЗ


рдирдВрдмрд░рдлрд╝реЙрд░реНрдореИрдЯ рд╡рд┐рдзрд┐


рдкрджреНрдзрддрд┐ рдХреЛ numberFormat()рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

var _ = require("underscore.string");
_.numberFormat(1000, 3)
// "1,000.000"
_.numberFormat(123456789.123, 5, '.', ',');
// "123,456,789.12300"

рд▓реЗрд╡реЗрдВрд╕рд╣рд╛рдЗрдЯ рд╡рд┐рдзрд┐


рд╡рд┐рдзрд┐ levenshtein()рджреЛ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдмреАрдЪ рд▓реЗрд╡реЗрдиреНрд╕рд╣рд╛рдЗрдЯ рджреВрд░реА рд▓реМрдЯрд╛рддреА рд╣реИред рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдкрдврд╝реЗрдВ рдпрд╣рд╛рдБ ред

var _ = require("underscore.string");
_.levenshtein('kitten', 'kittah');
// 2

рдЪреМрдк рд╡рд┐рдзрд┐


рд╡рд┐рдзрд┐ chop()рдЗрд╕реЗ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреА рд╣реИред

var _ = require("underscore.string");
_.chop('whitespace', 3);
// ['whi','tes','pac','e']

тЖТ рдпрд╣рд╛рдБ рдПрдХ рдкреГрд╖реНрда рд╣реИ рдЬрд╣рд╛рдБ рдЖрдк рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВunderscore.string

5. рд╕реНрдЯреНрд░рд┐рдВрдЧ


рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ stringzрдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдпреВрдирд┐рдХреЛрдб рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдпрджрд┐, рдХрд┐рд╕реА рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛, рдирд┐рдореНрди рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ 2 рд╣реИред



рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ JS-string рд╡рд┐рдзрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ length()рдХреЗ рдХреЛрдб рдмрд┐рдВрджреБрдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддреА рд╣реИ, рдФрд░ рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд╣реАрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреБрдЫ рд╡рд░реНрдг рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ 010000тАУ03FFFFрдФрд░ 040000тАУ10FFFFрдХреЛрдб рдмрд┐рдВрджреБ рдХреЗ рдЕрдиреБрд╕рд╛рд░ 4 рдмрд╛рдЗрдЯреНрд╕ (32 рдмрд┐рдЯреНрд╕) рддрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрддреНрддрд░ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ: рдХреБрдЫ рд╡рд░реНрдгреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ 2 рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рдЗрдЯреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдХреЛрдб рдмрд┐рдВрджреБрдУрдВ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

тЖТ рдпрд╣рд╛рдБ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдпреВрдирд┐рдХреЛрдб рд╡рд░реНрдгреЛрдВ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рджреА рдЧрдИ рд╣реИред

тЦНInstallation


рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:

npm i stringz

ред рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рддрд░реАрдХреЗ


рд╕реАрдорд╛ рд╡рд┐рдзрд┐


рд╡рд┐рдзрд┐ limit()рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдВрдмрд╛рдИ рддрдХ рд▓реЗ рдЬрд╛рддреА рд╣реИред



ToArray рд╡рд┐рдзрд┐


рд╡рд┐рдзрд┐ toArray()рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдмрджрд▓ рджреЗрддреА рд╣реИред



тЖТ рдпрд╣рд╛рдБ рдкреБрд╕реНрддрдХрд╛рд▓рдп рднрдВрдбрд╛рд░ рдкреГрд╖реНрда рд╣реИред

рдФрд░ рддрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдХреМрди рд╕реЗ рд╕рд╣рд╛рдпрдХ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?

рд╣рдо рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдЬрд╛рд░реА рд░рдЦ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдПрдХ рдирдпрд╛ рдЖрдИрдлреЛрди рдЬреАрдд рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ рдЕрднреА рднреА рд╕рдордп рд╣реИ, рдФрд░ рд╕рд╛рдордпрд┐рдХ рдореВрд▓реНрдпреЛрдВ рдкрд░ рд╕рдмрд╕реЗ рд╕рдЯреАрдХ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред


All Articles