Динамически находить фрагменты фразы в строке, используя regex и .replace () - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть большая строка, мне нужно удалить фразу «Страницы 1 из 3 напечатаны на:», и я пытаюсь использовать регулярное выражение, чтобы сделать 1 из X динамическим.Я также пытался использовать шаблон и шаблон строки, но мне не повезло.

В настоящее время я работаю в жестком коде.Например, если я напишу код 3, он найдет всю фразу, заменит ее ничем и найдет другие примеры.Любая помощь приветствуется!

let text = 'Pages 1 of 3 Printed on: FIRST NAME Pages 2 of 3 Printed on: TITLE SIGNATURE Pages 3 of 3 Printed on: STAN SMITH'


// Remove Pages
if (text('Pages 1 of ' + /[0-9]/ + 'Printed on: ')) {
    // Removing Begins
    console.log('Removing: Pages 1 of ' + /[0-9]/ + 'Printed on: ');

    // Remove Text
    text = text('Pages 1 of ' + /[0-9]/ + 'Printed on: ', '');

    // Find Any Other Instances Of Text
    while (text.includes('Pages 1 of /[1-9]/gPrinted on: ', '')) {
        text = text('Pages 1 of ' + /[0-9]/ + 'Printed on: ', '', '');
    }

    // Removing Ends
    console.log('Removed: Pages 1 of ' + /[0-9]/ + 'Printed on: ');
}

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Я не совсем то, как выглядит остальная часть кода, но если вы хотите напечатать 1 из X с увеличивающимся значением X, вы можете сделать:

for (let i in pages) console.log(`Printing page ${i+1} of ${pages}`);

Это если pages это int.

0 голосов
/ 07 декабря 2018

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

/Pages \d+ of \d+ Printed on: /g

let text = 'Pages 1 of 3 Printed on: FIRST NAME Pages 2 of 3 Printed on: TITLE SIGNATURE Pages 3 of 3 Printed on: STAN SMITH';
const output = text.replace(/Pages \d+ of \d+ Printed on: /g, '');
console.log(output);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...