Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярные выражения (https://javascript.ru/forum/misc/73757-regulyarnye-vyrazheniya.html)

VyacheslavBozere 12.05.2018 13:16

Регулярные выражения
 
Всем привет. Подскажите пожалуйста как работает функция minusOne.
Я понял что ее аргументы это строка stock, но за счет какой технологии это работает ?

let stock = "1 lemon, 2 cabbages, and 101 eggs";
function minusOne(match, amount, unit) {
  amount = Number(amount) - 1;
  if (amount == 1) { // only one left, remove the 's'
    unit = unit.slice(0, unit.length - 1);
  } else if (amount == 0) {
    amount = "no";
  }
  return amount + " " + unit;
}
console.log(stock.replace(/(\d+) (\w+)/g, minusOne));
// → no lemon, 1 cabbage, and 100 eggs

j0hnik 12.05.2018 13:26

ee аргументы это
match - найденное совпадение
amount - содержимое первых скобок
unit - содержимое вторых скобок из строки 11

если поймете как работает метод
https://developer.mozilla.org/ru/doc...String/replace
то все станет понятно.

VyacheslavBozere 12.05.2018 15:56

Понял, большой спасибо!


Часовой пояс GMT +3, время: 22:42.