FUN?ÃO REPLACE EM JAVASCRIPT - ASP.NET

MLALEX 22/06/2015 11:58:38
#448008
Olá pessoal!!

Tenho uma função em javascript que retorna uma string entre parênteses = [Ô](123456, 654321)[Ô]. Preciso retirar os parênteses dessa string e ficar só com o conteudo [Ô]123456, 654321[Ô].

Tentei a função replace mas não funcionou:


 var String1 = [ô](123456,654321)[ô];[Ô] + _
var String2 = string1.replace([ô]()[ô], [ô][ô]);[Ô] + _


Qual a forma correta de retirar esses parênteses??
FILMAN 22/06/2015 12:55:53
#448010
Resposta escolhida
Você pode fazer assim

var String1 = [ô](123456,654321)[ô];
var String2 = string1.replace([ô]([ô], [ô][ô]);
String2 = String2.replace([ô])[ô],[ô][ô]);

Ou assim

var String1 = [ô](123456,654321)[ô];
var String2 = string1.replace([ô]([ô], [ô][ô]).replace([ô])[ô],[ô][ô]);

Ou assim

var String1 = [ô](123456,654321)[ô];
var String2 = string1.replace(/(|)/g, [ô][ô]);

Ou assim

var String1 = [ô](123456,654321)[ô];
var String2 = string1.replace(/[()]/g, [ô][ô]);


Espero ter ajudado
MLALEX 22/06/2015 17:11:11
#448032
Olá Filman.

Primeiro, quero agradecer sua atenção. MUITO OBRIGADO.

Seus exemplos foram perfeitos. Quanto testo apenas o que você sugeriu, funciona perfeitamente. Quando insiro seu exemplo no meu código, não funciona. Veja.

Se faço assim funciona:
          Literal2.Text = [Ô]<script type=[ô]text/javascript[ô]>[Ô] + _
[Ô]var geocoder = new google.maps.Geocoder();[Ô] + _
[Ô]var address = [ô][Ô] & txtEndereco.Text & [Ô][ô];[Ô] + _
[Ô]geocoder.geocode( { [ô]address[ô]: address}, function(results, status) {[Ô] + _
[Ô]var String1 = results[0].geometry.location;[Ô] + _
[Ô]alert(String1);[Ô] +
[Ô]});[Ô] + _
[Ô]</script>[Ô]


No código acima exibe no alert a string1 perfeitamente. Ou seja até aqui não há problemas se se insiro o replace, nada acontece:


          Literal2.Text = [Ô]<script type=[ô]text/javascript[ô]>[Ô] + _
[Ô]var geocoder = new google.maps.Geocoder();[Ô] + _
[Ô]var address = [ô][Ô] & txtEndereco.Text & [Ô][ô];[Ô] + _
[Ô]geocoder.geocode( { [ô]address[ô]: address}, function(results, status) {[Ô] + _
[Ô]var String1 = results[0].geometry.location;[Ô] + _
[Ô]var String2 = String1.replace(/[()]/g, [ô][ô])[Ô] + _
[Ô]alert(String2);[Ô] +
[Ô]});[Ô] + _
[Ô]</script>[Ô]


O que esta errado???
FILMAN 22/06/2015 19:23:54
#448037
Tente colocar o ponto e virgula no fim da linha

Literal2.Text = [Ô]<script type=[ô]text/javascript[ô]>[Ô] + _
[Ô]var geocoder = new google.maps.Geocoder();[Ô] + _
[Ô]var address = [ô][Ô] & txtEndereco.Text & [Ô][ô];[Ô] + _
[Ô]geocoder.geocode( { [ô]address[ô]: address}, function(results, status) {[Ô] + _
[Ô]var String1 = results[0].geometry.location;[Ô] + _
[Ô]var String2 = String1.replace(/[()]/g, [ô][ô])[txt-color=#e80000];[/txt-color][Ô] + _
[Ô]alert(String2);[Ô] +
[Ô]});[Ô] + _
[Ô]</script>[Ô]
MLALEX 23/06/2015 11:15:56
#448056
Eu já tinha tentado com o [Ô];[Ô] mas também não deu certo. Tentei com todos os exemplos que você sugeriu acima, mas nenhum funcionou. Tentei então trocar outros caracteres para ver se problema era com os parênteses, também não deu certo, portanto, dá para perceber que o problema não é com o replace em si, mas o replace dentro desse trecho do código.

Em VB6 existe como pegar o conteúdo usando Mid(string1, 2, Len(string1) - 1). Sabe como fazer isso em javascript?? Talvez isso funcione.

Pensei ainda em jogar o valor dentro de um textbox ou uma session, mas também não sei como fazer isso em java

Tem alguma outra idèia??
FILMAN 23/06/2015 12:02:47
#448057
Faz assim:

Literal2.Text = [Ô]<script type=[ô]text/javascript[ô]>[Ô] + _
[Ô]var geocoder = new google.maps.Geocoder();[Ô] + _
[Ô]var address = [ô][Ô] & txtEndereco.Text & [Ô][ô];[Ô] + _
[Ô]geocoder.geocode( { [ô]address[ô]: address}, function(results, status) {[Ô] + _
[Ô]var String1 = results[0].geometry.location;[Ô] + _
[Ô]var String2 = String1.replace(/[()]/g, [ô][ô]);[Ô] + _
[Ô]alert(String2);[Ô] +[txt-color=#e80000] _[/txt-color]
[Ô]});[Ô] + _
[Ô]</script>[Ô]

Ou assim

Literal2.Text = [Ô]<script type=[ô]text/javascript[ô]>[Ô] + _
[Ô]var geocoder = new google.maps.Geocoder();[Ô] + _
[Ô]var address = [ô][Ô] & txtEndereco.Text & [Ô][ô];[Ô] + _
[Ô]geocoder.geocode( { [ô]address[ô]: address}, function(results, status) {[Ô] + _
[Ô]var String1 = results[0].geometry.location.replace(/[()]/g, [ô][ô]);[Ô] + _
[Ô]alert(String2);[Ô] +[txt-color=#e80000] _[/txt-color]
[Ô]});[Ô] + _
[Ô]</script>[Ô]
KERPLUNK 23/06/2015 20:15:48
#448086
Porque usar um literal no codebehind para isso? Porque não simplesmente colocar o script diretamente no ASPX? Se for por causa do valor em [Ô]txtEndereco[Ô], isso tem como ser contornado com tags de server.
MLALEX 24/06/2015 17:40:00
#448129
Citação:

Porque usar um literal no codebehind para isso? Porque não simplesmente colocar o script diretamente no ASPX? Se for por causa do valor em [Ô]txtEndereco[Ô], isso tem como ser contornado com tags de server.



Grande Kerplunk!! Trabalho há 15 anos com VB6 e agora estou migrando para AspNet VB. Ainda estou preso ao CodeBehind porque só sei trabalhar assim. Estou pagando um preço alto por isso pois a grande maioria dos exemplos que encontro nas pesquisas ou são em Java Script ou em C#. Tenho conseguido andar até bem levando em consideração tudo isso, mas o fato é que eu agarrei com esses comandos da api do Google Maps pois tudo é em java e eu não saco nada disso.

Grande Filman, em relação aos dois exemplos que você me passou, funcionam muito bem fora do trecho do código, assim como os exemplos anteriores, mas dentro do código não funcionam. Coloquei o alert String2 para ver se até aquele ponto estava dando certo, mas o código simplesmente não reage depois que faço o replace. Portanto, o erro não está no replace mas em algum outro lugar que não consigo descobrir.

Estou postando abaixo o código completo para uma última tentativa de pedir socorro. Talvez o certo fosse encerrar esse tópico e pedir ajuda com referência ao Google Maps


   [ô]DETERMINANDO A POSIÇÃO DA RESIDÊNCIA
Literal2.Text = [Ô]<script type=[ô]text/javascript[ô]>[Ô] + _
[Ô]var geocoder = new google.maps.Geocoder();[Ô] + _
[Ô]var address = [ô][Ô] & txtEndereco.Text & [Ô][ô];[Ô] + _
[Ô]geocoder.geocode( { [ô]address[ô]: address}, function(results, status) {[Ô] + _
[Ô]var String1 = results[0].geometry.location;[Ô] + _
[Ô]var String2 = String1.replace(/[()]/g, [ô][ô]);[Ô] + _
[Ô]alert(String2);[Ô] + _
[Ô]document.getElementById([ô]LatLng[ô]). value = String2[Ô] + _
[Ô]});[Ô] + _
[Ô]</script>[Ô]

[ô]INSERINDO A MARCA DA RESIDÊNCIA
markers = [Ô]var marker1= new google.maps.Marker({[Ô] + _
[Ô]position: new google.maps.LatLng(document.getElementById([ô]LatLng[ô]). value),[Ô] + _
[Ô]map: myMap,[Ô] + _
[Ô]title:[ô]Ponte Nova[ô], [Ô] & _
[Ô]icon: [ô]/img/Casa.png[ô],[Ô] & _
[Ô]size: new google.maps.Size(5, 5), [Ô] & _
[Ô]});[Ô] + _
[Ô]var infotext = [ô][Ô] & Texto & [Ô][ô];[Ô] + _
[Ô]var infowindow1 = new google.maps.InfoWindow();[Ô] + _
[Ô]infowindow1.setContent(infotext);[Ô] + _
[Ô]google.maps.event.addListener(marker1, [ô]click[ô], function () {[Ô] + _
[Ô]infowindow1.open(myMap, marker1);[Ô] + _
[Ô]});[Ô]


Mais uma vez agradeço o carinho e a atenção de vocês.
FILMAN 24/06/2015 19:26:07
#448133
Cara o que você precisa é isso! Coloque tudo em um arquivo HTMl e teste para ver como fica!

<!DOCTYPE html>

<html lang=[Ô]pt-br[Ô] xmlns=[Ô]http://www.w3.org/1999/xhtml[Ô]>
<head>
<title></title>
<script src=[Ô]http://code.jquery.com/jquery-1.9.1.js[Ô]></script>
<script type=[Ô]text/javascript[Ô] src=[Ô]http://maps.google.com/maps/api/js?sensor=false[Ô]></script>

<script type=[Ô]text/javascript[Ô]>
var geocoder = new google.maps.Geocoder();
var map;

function codeAddress(address) {
var address = document.getElementById([Ô]endereco[Ô]).value;
geocoder.geocode({ [ô]address[ô]: address }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var latlng = new google.maps.LatLng(results[0].geometry.location);
var myOptions = {
title: [ô]Ponte Nova[ô],
zoom: 17,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById([Ô]boxMapa2[Ô]), myOptions);
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
} else {
return false;
}
});
}

$(document).ready(function() {
$([ô].button-green[ô]).click(function() {
codeAddress();
});
});
</script>

<style>
.button-green {
font-family: [Ô]Helvetica Neue[Ô],Helvetica,Arial,sans-serif;
font-size: 0.8em;
color: #FFF;
padding: 2px 5px;
width: 45px;
margin: 0px;
font-weight: bold;
text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.2);
border: 1px solid rgba(87, 121, 63, 0.8);
border-radius: 3px;
background-clip: padding-box;
background-color: #90B575;
box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.4), 0px 1px 0px rgba(255, 255, 255, 0.25) inset;
background-image: -moz-linear-gradient(center bottom , rgba(0, 0, 0, 0.15) -17%, rgba(255, 255, 255, 0.15) 117%);
float:left;
cursor: pointer;
}
</style>

</head>
<body>
<div>
<div id=[Ô]boxMapa2[Ô] style=[Ô]width: 480px; height: 480px; border: solid 1px #0073E5;[Ô]></div>
<div class=[Ô]button-green[Ô]>Buscar</div>  
<input id=[Ô]endereco[Ô] name=[Ô]endereco[Ô] type=[Ô]text[Ô] value=[Ô]Ponte Nova, MG[Ô] style=[Ô]width: 410px;[Ô] />
</div>
</body>
</html>
MLALEX 25/06/2015 16:38:14
#448161
FILMAN.... VOCÊ é O CARA!!!

Show de bola!! Funcionou perfeitamente. Agora vou precisar chamar essa função do codebehind. Tentei esses dois comandos mas não funcionou:
    Page.ClientScript.RegisterStartupScript(Me.GetType, [Ô]Ok[Ô], [Ô]codeAddress();[Ô], True)
Me.ClientScript.RegisterClientScriptBlock(Me.GetType(), [Ô]Ok[Ô], [Ô]<script type=[ô]text/javascript[ô]> codeAddress(); < /script >[Ô], True)


Pode me ajudar novamente??
MLALEX 25/06/2015 17:04:15
#448163
Acabei conseguindo com o seguinte código:

  ScriptManager.RegisterStartupScript(Me, Me.GetType(), [Ô]codeAddress[Ô], [Ô]codeAddress();[Ô], True)  


Caro MESTRE FILMAN ou outro GRANDE MESTRE que se interesse. Eu estaria ferindo alguma norma do site fazendo uma proposta de parceria em relação a API do google maps? A idéia seria apresentar umas 5 questões do tipo:
1) Converter coordenas UTM em coordenadas geográficas;
2) Relacionar e copiar todas as ruas de uma determinada cidade do google maps;
3) Prencher campos ao clicar em uma determinada marca do google maps;
4) Criar rotas a partir de coordenadas geográfica;
5) Outra questão que ainda surgirá...

E á medida que for me ajudando a resolver essas questões, eu pagaria um determinado valor?? Isso seria possível?
Tópico encerrado , respostas não são mais permitidas