3

I am trying to remove all scripts tags with content from the string of the type below with regex in javascript. But I am still getting as output:

");</script>

when it should be an empty string.

The code is:

var BG = '<script type="text/javascript">document.write("<script type=\"text\/javascript\" src=\"http:\/\/site;js=y;target=_blank;time="+ (window.emediate_time ? window.emediate_time : window.emediate_time = new Date().getTime()) +"1053997930;"><\/script>");</script><script type="text/javascript" src="some?cre=mu;js=y;target=_blank"></script>';

BG = BG.replace(/<\s*script.*?>.*?(<\s*\/script.*?>|$)/ig,'');

Could you please tell me what's wrong and how to fix it. Thanks.

2
  • /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi Commented Apr 4, 2013 at 16:38
  • this is the good answer for me ! Commented Nov 14, 2017 at 16:06

1 Answer 1

7

Try this:

(/<.*?script.*?>.*?<\/.*?script.*?>/igm, '')

or

(/<script.*?>.*?<\/script>/igm, '')

(you need 'm' switch to search multi-line)

Sign up to request clarification or add additional context in comments.

3 Comments

you need 'm' switch to search multiline.
There is no need for multiline mode, and a script tag must start with <script.
You are not understanding multiline mode correctly. It is only used when a regex contains ^ or $, and you want them to match the start and end of a line, rather than of the whole string.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.