RegEx для замены шаблона JavaScript

У меня есть тонны html-файлов с таким выражением:

eval('enterData.style.pixelTop=' + y);

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

enterData.style.pixelTop =  y;

Может ли кто-нибудь помочь мне с этим. Я ломаю голову, пытаясь найти решение, но я знаю только, как устранить eval с помощью:

Regex: eval\('(.*)'\)
Replace: $1

Я использую java для регулярного выражения.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
51
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я предполагаю, что мы могли бы зафиксировать оба желаемых vars по отдельности с помощью такого выражения, как:

.+'(.+?)'\s+?[+\-*]+\s+([a-z]+).+

Мы, конечно, можем упростить это выражение, но я не был уверен в других исходных данных, которые мы могли бы иметь.

Джава

import java.util.regex.Matcher;
import java.util.regex.Pattern;

final String regex = ".+'(.+?)'\\s+?[+\\-*]+\\s+([a-z]+).+";
final String string = "eval('enterData.style.pixelTop=' + y);\n"
     + "eval('enterData.style.pixelTop=' + x);";
final String subst = "$1$2;";

final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);

// The substituted value will be contained in the result variable
final String result = matcher.replaceAll(subst);

System.out.println(result);

Тестовое задание

const regex = /.+'(.+?)'\s+?[+\-*]+\s+([a-z]+).+/gm;
const str = `eval('enterData.style.pixelTop=' + y);
eval('enterData.style.pixelTop=' + x);`;
const subst = `$1$2;`;

// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);

console.info(result);

Демо

регулярное выражение

Если это выражение не нужно, его можно модифицировать/изменить в regex101.com.

Цепь регулярных выражений

jex.im визуализирует регулярные выражения:

Ответ принят как подходящий

Я ничего не знаю о Javascript, но это то, что я вижу.

Вам нужно сбежать от ваших ' символов и поместить их в несоответствующие группы, используя :?

Regex: eval\(((?:\')(.*)(?:\').*)\)
Replace: $1

Ознакомьтесь с регулярное выражение101 для создания прототипов регулярных выражений.

Другие вопросы по теме