Ви знаєте як замінити в тексті одну послідовність символів іншою? Наприклад всі прогалики – на символ підкреслювання. Метод replace()
? Вгадали:
> 'this is a test'.replace(' ', '_') 'this_is a test'
Ой, а чого воно лише одну заміну зробило? Бо таке воно ліниве падло. Хочете глобальної заміни – передайте шаблон регулярного виразу який співставляється глобально:
> 'this is a test'.replace(/ /g, '_') 'this_is_a_test'
Працює! А тепер уявімо що нам треба замінити наприклад не прогалик а трубу:
> 'a|b|c|d'.replace(/|/g, '_') '_a_|_b_|_c_|_d_'
Ну так, треба не забувати що деякі символи в регулярних виразах мають спеціальне значення і їх треба екранувати:
> 'a|b|c|d'.replace(/|/g, '_') 'a_b_c_d'
А якщо раптом ви не хочете нічого знати про ці регулярні вирази (або ваш користувач не хоче), то є таки спосіб глобальної заміни підрядка. Знаєте який? StackOverflow підкаже:
> 'a|b|c|d'.split('|').join('_') 'a_b_c_d'
І я не знаю що на це сказати. Піду краще посплю.
Filed under: Кодерство Tagged: JavaScript
