Я розробляю тестер регулярних виразів у HTML та JavaScript. Користувач вводить регулярний вираз, рядок і вибирає функцію, з якою він хоче тестувати (наприклад, пошук, збіг, заміна тощо) за допомогою перемикача, і програма покаже результати, коли ця функція запускається із заданими аргументами. Зрозуміло, що для додаткових аргументів для заміни та таких додаткових текстових полів будуть додаткові текстові поля.
Моя проблема - отримати рядок від користувача та перетворити його на звичайний вираз. Якщо я скажу, що вони не потребують //
навколо регексу, який вони вводять, вони не можуть встановлювати прапори, як-от g
і i
. Таким чином, вони повинні мати //
"навколо" виразу, але як я можу перетворити цей рядок у регулярний вираз? Це не може бути буквальним, оскільки його рядок, і я не можу передати його конструктору RegExp, оскільки він не є рядком без //
s. Чи є якийсь інший спосіб зробити рядок введення користувача в регулярний вираз? Чи доведеться мені розбирати рядок і прапори регулярного виразів //
, а потім будувати його іншим способом? Чи повинен я їх ввести рядок, а потім ввести прапори окремо?