以不同的模式(即<script>,</script>和%2Cscript)从JSON中删除脚本标签

时间:2018-06-28 06:28:12

标签: javascript regex

我正在尝试替换JSON中的所有脚本标签。我目前正在使用以下正则表达式:

/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi

仅在以下情况下有效:

<script>
<script>adfe</script>
<script>sce
<script>ccrcr<script></script>
<script><dwdwd>
<script></script>

我需要它可以在以下情况下工作:

<add></script>
aasdd</script>
%3Cscript%3Ealert(document.domain)%3C%2Fscript%3E

这是示例代码:

var myObj = { "name":"John", "age":31, "city":"New York","search":"?<script>alert(document.domain)</script>","query":"body<script>alert('fvvr')</script>","path":"/movies?Header:1%3Cscript%3Ealert(document.domain)%3C%2Fscript%3E"};

var myJSON = JSON.stringify(myObj).replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, '');

alert(myJSON);

您能帮我吗?

0 个答案:

没有答案