RegExp , remover todos os Scripts de um HTML

3 respostas
Dennys

Salve Senhores!

Estou usando regexp para remover todos os scripts de uma página.

Pattern pattern = Pattern.compile("<script.*?></script>",Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
		content = pattern.matcher(content).replaceAll("");
		System.out.println(content);

ele não está removendo todos os scripts :frowning: … estou aplicando o regexp nesta string

static String content = "<html><head>    <title>[DCBSM001] Reports</title>    <style>       --&gt  </style> <script src='/Script/query.js' LANGUAGE='JavaScript1.2' TYPE='text/javascript'></script> <script src='/Script/shared.jsp' LANGUAGE='JavaScript1.2' TYPE='text/javascript'></script> <script src='/Script/menu.js' LANGUAGE='JavaScript1.2' TYPE='text/javascript'></script> <script src='/Script/tree.jsp' LANGUAGE='JavaScript1.2' TYPE='text/javascript'></script> <script src='/Script/SelectWindowScript.jsp' LANGUAGE='JavaScript1.2' TYPE='text/javascript'></script> </head> <body style='width: 100%;' onload='bool_PageLoaded = true; '>\n" +
	"<script>\n" +
	"function check_add_case(this_form)\n" +
	"{\n" +
	"    var flag = false;\n" +
	"    var string = \n" +
	"    if (( this_form.CaseNewSummary != undefined ) && ( verifySpecialCharectersLeftRightAngle(this_form.CaseNewSummary.value) ))\n" +
	"    {\n" +
	"        flag = true;\n" +
	"        string = string + \"Case Summary \" + returnSpecialCharectersLeftRightAngleString() + \n" +
	"    }\n" +
	"    if (( this_form.CaseCommentText != undefined ) && ( verifySpecialCharectersLeftRightAngle(this_form.CaseCommentText.value) ))\n" +
	"    {\n" +
	"        flag = true;\n" +
	"        string = string + \"Case Comment \" + returnSpecialCharectersLeftRightAngleString() \n" +
	"    }\n" +
	"    if ( flag == true )\n" +
	"    {\n" +
	"        alert( string );\n" +
	"        return false;\n" +
	"    }\n" +
	"    return true;\n" +
	"}\n" +
	"\n" +
	"</script>\n";

a regexp não esta removendo o script que possui a function check_add_case, alguém pode explicar o porque?

Obrigado!

3 Respostas

T

A expressão regular acima indica que o “>” deve vir encostado no “<” o que não é o caso do script que você quer processar.

Dennys

Aeee

Conseguiii!

content = content.replaceAll("(?is)<script.*?", “”);

Dennys

thingol:

<script.*?></script>

A expressão regular acima indica que o “>” deve vir encostado no “<” o que não é o caso do script que você quer processar.

Obrigado pela ajuuddaaa!

Criado 2 de setembro de 2007
Ultima resposta 2 de set. de 2007
Respostas 3
Participantes 2