javascript
  • regex
  • 2013-04-04 124 views 1 likes 
    1

    我正嘗試使用JavaScript中的正則表達式從下面類型的字符串中刪除所有腳本標記。 但我仍然得到作爲輸出:使用javascript正則表達式刪除所有腳本

    ");</script> 
    

    當它應該是一個空字符串。

    的代碼是:

    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,''); 
    

    你能告訴我什麼是錯的,如何解決它。謝謝。

    +0

    /<腳本\ B [^ <] *(? :(?! <\/script>)<[^ <] *)* <\/script>/gi – 2013-04-04 16:38:28

    +0

    這對我來說是很好的答案! – 2017-11-14 16:06:19

    回答

    4

    嘗試這種情況:

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

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

    (你需要 'M' 切換到搜索多線)

    +0

    你需要'm'開關來搜索多行。 – 2013-04-04 16:39:24

    +2

    完美,謝謝。 – user1853892 2013-04-04 16:43:24

    +2

    你如何將它標記爲已接受? :D – 2013-04-04 16:44:41

    相關問題