Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

maktub

Limitar texto

Recommended Posts

Galera preciso de uma ajuda

 

Estou usando editor para incluir notícias em meu site, consigo formatar sem problema, quando eu chamo a notícia na página principal com limite de texto, ao invés de aparecer a matéria formatada, aparece o código assim:

 

 

Olá, este é um teste do "clique aqui"<br/><br/>Para ver se ele funciona, então "<a href="java script:void(0);/*1226185279227*/">clique aqui</a>" Para ver se ele funciona, então "<a href="java script:void(0);/*1226185279227*/">clique aqui</a>" Para ver se ele funciona, então "<a href="java script:void(0);/*1226185279227*/">clique aqui</a>" Para ver se ele funciona, então..

Quando eu retiro a limitação de texto a formatação aparece mas o problema é que desconfigura minha página principal.

 

Estou usando assim para limitar o texto:

 

<% =DoTrimProperly(rsLastestNews.Fields.Item("DAT_DESCRIPTION").value, 600, 1, 1, "..") %>

 

E o VBSCRIPT assim:

 

<script RUNAT=SERVER LANGUAGE=VBSCRIPT>	
function DoTrimProperly(str, nNamedFormat, properly, pointed, points)
  dim strRet
  strRet = Server.HTMLEncode(str)
  strRet = replace(strRet, vbcrlf,"")
  strRet = replace(strRet, vbtab,"")
  If (LEN(strRet) > nNamedFormat) Then
	strRet = LEFT(strRet, nNamedFormat)			
	If (properly = 1) Then					
	  Dim TempArray								
	  TempArray = split(strRet, " ")	
	  Dim n
	  strRet = ""
	  for n = 0 to Ubound(TempArray) - 1
		strRet = strRet & " " & TempArray(n)
	  next
	End If
	If (pointed = 1) Then
	  strRet = strRet & points
	End If
  End If
  DoTrimProperly = strRet
End Function
</SCRIPT>

 

Gostaria que ao chamar a mensagem ela fosse exibida sem a formação (sem exibir o código HTML) e com a limitação de palavras.

 

tem como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe um código, se não me engano no Laboratório de Scripts, que elimina as Tags HTML. Você usaria ela antes de usar a função que corta seu texto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você quer tipo, um determinado texto, fique com "..."

Limite texto resultante de um banco de dados ou

palavra e substituir qualquer coisa sobre o seu limite

com "..." Basta alterar para 10 o limite que você desejar.

 

<%
'especifique o seu tópico
Topico = rs("topico")
'exibe 10 caracteres
Topico = left(topico,10)
'se caracteres após 10 não são nulos,exibir 10 primeiros ...
if mid(topico,10) <> "" then
Topico = left(topico,10) & "..."
end if
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, eu tenho produzido assim:

 

<% =DoTrimProperly(rsLastestNews.Fields.Item("DAT_DESCRIPTION").value, 600, 1, 1, "..") %>

e ja funciona bem, o problema é que ao realizar a impressão, o código html aparece junto assim:

 

Olá, este é um teste do "clique aqui"<br/><br/>Para ver se ele funciona, então "<a href="java script:void(0);/*1226185279227*/">clique aqui</a>" Para ver se ele funciona, então "<a href="java script:void(0);/*1226185279227*/">clique aqui</a>" Para ver se ele funciona, então "<a href="java script:void(0);/*1226185279227*/">clique aqui</a>" Para ver se ele funciona, então..

Eu achei uma função que poderia eliminar a formatação fazendo a impressão do texto apenas, mas creio que não é isso:

 

 

<script>
function volcarContenido(){
contenido = opener.document.getElementById('impresion').innerHTML;
contenido = contenido.replace(/<a([^>]+)>|<\/a>/gi,"")
document.write(contenido);
}
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dê uma olhada nesse tópico: LimpaHTML, nele existem dois exemplos de como fazer a retirada das Tag's HTML. Com relação aos acentos, talvez a melhor forma seria gravá-los normal, como acentos mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Remove todas as tags html de uma string e substitui-los com espaços.

 

sintaxe:

 

var newString = StripAllHTML(string);

exemplo:

 

 

var string1 = "<b><BIG>hello world</BIG></b>";
var string2 = StripAllHTML(string1);

código:

 

 

function StripAllHTML(s) {
//remove todas as tags html de uma string, substitui-os com espaços

s = "" + s + "";

/ / encontra qualquer expressão regular esta tag html e é 
/ / correspondente tag final e substitui-as por um espaço
return s.replace( new RegExp("(\<[\/]?)([\,\:\;\%\-\/\.\\\dA-Z\=\"\ \#]*)(\>)", "gim"), " " );

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei assim:

 

 

<script type="text/javascript">
function StripAllHTML(s) {
	//removes all html tags from a string, replaces them with spaces
	
	s = "" + s + "";

	//this regular expression finds any html tag and it's
	//corresponding end tag and replaces them with a space
	return s.replace( new RegExp("(\<[\/]?)([\,\:\;\%\-\/\.\\\dA-Z\=\"\ \#]*)(\>)", "gim"), " " );
}
</script>

 

 

Mas continua com o problema, aliais não mudou nada, da uma olhada na imagem como ele aparece:

 

Imagem Postada

 

 

 

A questão é, se eu fizer assim para chamar o texto:

 

<% =rsLastestNews.Fields.Item("DAT_DESCRIPTION")%>

Ele aparece sem as tags mas não consigo limitar o texto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quer uma solução em ASP ou em JavaScript? Estamos lhe passando soluções em ASP e você só está testando JavaScript. Teste as soluções passadas aqui no tópico e retorne se funcionaram ou não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vocês estão ajudando bastante, a questão é que se eu usar o JavaScript fico com o texto desconfigurado como na imagem, se eu usar apenas a solução asp fico sem a limitação de texto, porém com o arquivo sem "sujeira" tag impressa para o usuário

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só combinar, como eu disse em minha 1ª postagem. Use a função para retirar o HTML, armazene o resultado em uma variável, e depois a função para limitar.

Basicamente fica assim:

Var = FunçãoQueLimpaHTML(ValorVindoDoBD)
Var = FunçãoQueLimitaTexto(var)

Response.Write Var

Use essa seqüencia lógica e teste.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais um exemplo:

 

RemoveHTMLTags(ByVal strHTML)

Remove todas as tags HTML de uma string

Parametros:

strHTML: String com as tags HTML a serem retiradas

Retorno: String

 

<%
Function RemoveHTMLTags(ByVal strHTML)
	Dim objER
	Dim strTexto

	Set objER			= New RegExp 
	objER.IgnoreCase	= True
	objER.Global		= True
	objER.Pattern		= "<[^>]*>"
	
	'Substituindo as tags encontradas pela expressão
	strTexto			= strHTML
	strTexto			= objER.Replace(strTexto, "")
	
	Set objER			= Nothing

	'Retorna a função
	RemoveHTMLTags = strTexto
End Function

'-----------------------------------------------------
'chamando a função
'-----------------------------------------------------
Dim HTML
HTML = "<font face='verdana' size='2'>teste</font> da função de retira as <b>TAGS</b> <font color='red'>HTML</font><br>"
'Texto com TAG
Response.Write HTML
'Texto sem TAG
Response.Write RemoveHTMLTags(HTML)
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara achei uma solução para não aparecer o código fonte:

 

 

<%=left(rsLastestNews.Fields.Item("DAT_DESCRIPTION").Value,650)%>

só a função dos "3 pontinhos" que não deu certo então fiz um esquema:

 

<%=left(rsLastestNews.Fields.Item("DAT_DESCRIPTION").Value,650)%>...

Bom agora vou tentar adaptar esse para não mostar a formatação

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.