Javascript .replace () / регулярное выражение с кодом в виде строки - PullRequest
0 голосов
/ 13 сентября 2011

Я пытаюсь "удалить" (просто замените его на "") следующую строку:

<script type="text/javascript">
document.createElement("img").src="http://www.google.com"
</script>

Из следующей строки:

<SCRIPT LANGUAGE=JavaScript>
var PAswf = "_ADPATH_[%SWF File%]";
var advurl = "_ADCLICK_";
var PAadvurl = escape(advurl);
var PAwidth = "[%Width%]";
var PAheight = "[%Height%]";
var wmValue = "_ADDCP(wm)_";
if (!wmValue)wmValue = "opaque";
var PAwmode = wmValue;
document.write('<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"');
document.write(' WIDTH="'+ PAwidth +'" HEIGHT="'+ PAheight +'">');
document.write('<PARAM NAME=movie VAL'+'UE="' + PAswf + '?clickTag='+ PAadvurl +'"><PARAM NAME=quality VALUE=high><PARAM NAME=wmode VALUE='+ PAwmode +'>');
document.write('<EMBED sr'+'c="'+PAswf + '?clickTag='+ PAadvurl +'" quality=high wmode='+ PAwmode);
document.write(' swLiveConnect=TRUE WIDTH="'+ PAwidth +'" HEIGHT="'+ PAheight +'"');
document.write(' TYPE="application/x-shockwave-flash">');
document.write('</EMBED></OBJECT>');
</SCRIPT>
<script type="text/javascript">
document.createElement("img").src="http://www.google.com"
</script>

Как видитеСтрока находится внизу блока кода, но это не должно иметь большого значения.Я сохранил первую строку как переменную codeString и попробовал следующее.

// code refers to the bigger code string
code.replace(/codeString/gm, "");

Кажется, не совпадает.Я уверен, что я делаю что-то дико неправильно, но я искал около часа и оказался пустым.Есть идеи?

Ответы [ 2 ]

5 голосов
/ 13 сентября 2011

/codeString/ - это регулярное выражение, ищущее литерал «codeString», а не переменную, содержащую шаблон.Кроме того, string.replace(pattern, replacement) не изменяет string, но возвращает новую строку с примененной заменой.

Вам не нужно регулярное выражение для удаления фиксированных строк, как этот, следующий код удалит строку один раз изcode:

var codeString = '<script type="text/javascript">\n' +
    'document.createElement("img").src="http://www.google.com"\n' +
    '<\/script>';
code = code.replace(codeString, "");
1 голос
/ 13 сентября 2011

Ну, вы можете начать с

code.replace(codestring, "");

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

code.replace(new RegExp(codestring, "gm"), "");

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...