разрезать строку и принять ее часть для параметра функции - PullRequest
0 голосов
/ 15 сентября 2018
function replace_tags(input, email) {
    return input
    .replace("{randomip}", random.ip)
    .replace("{email}", email)
    .replace("{date}", random.date)
    .replace("{random_number_4}", random.number(4))
}

У меня есть вышеуказанная функция, чтобы изменить строку, введенную пользователем, в возвращаемое значение функции или переменной

ну вот, я {random_number_4} Я хочу разбить строку ивзять число 4 для использования в качестве параметра в функции random.number(4)

Я хочу, если пользователь введет строку {random_number_x}, он получит random.number(x)

Какой метод мне больше всего нуженскорее всего сломать и заменить строку?

Ответы [ 2 ]

0 голосов
/ 16 сентября 2018

Вы можете использовать регулярное выражение с обратным вызовом :

var random = {
  number: (x) => Math.floor(Math.random() * x)
};

function replace_tags(input, email) {
    return input
      .replace("{randomip}", random.ip)
      .replace("{email}", email)
      .replace("{date}", random.date)
      .replace(/{random_number_(\d+)}/g, (_, number) => random.number(number))
}

console.log(replace_tags('test {email} {random_number_4} {random_number_8}', 'test@example.com'));
0 голосов
/ 16 сентября 2018

Вы можете использовать функцию обратного вызова replace:

function replace_tags(input, email) {
    return input
    .replace("{randomip}", random.ip)
    .replace("{email}", email)
    .replace("{date}", random.date)
    .replace(/\{random_number_(\d+)\}/g, (_, n) => random.number(n))
}
...