Jump to content
thgsousa312

Funcao para substituir a ultima palavra de uma frase

Recommended Posts

uma função que recebe uma frase e uma palavra antiga e uma palavra nova. A função deve retornar uma string contendo a frase original, mas com a última ocorrência da palavra antiga substituída pela palavra nova. A entrada e saída de dados deve ser feita no programa principal. Exemplo:  

Frase: “Quem parte e reparte fica com a maior parte”

Palavra antiga: “parte”  Palavra nova: “parcela”

Resultado a ser impresso no programa principal: “Quem parte e reparte fica com a maior parcela”

 

function trocarNome(){
        
    var frase = document.getElementById("frase").value;
    var strAntiga = document.getElementById("strAntiga").value;
    var strNova = document.getElementById("strNova").value;

    //frase = frase.split(" ");

    var a = frase.lastIndexOf(strAntiga);
    var fras2 = frase.lastIndexOf(strAntiga).replace(strAntiga,strNova);

    document.getElementById("demo").innerHTML = "Certo";
}

Share this post


Link to post
Share on other sites
On 6/24/2019 at 5:57 PM, thgsousa312 said:

    var a = frase.lastIndexOf(strAntiga);
    var fras2 = frase.lastIndexOf(strAntiga).replace(strAntiga,strNova);

    document.getElementById("demo").innerHTML = "Certo";

O código ficou ótimo, mas deixando uma dúvida, você declarou "var a = frase.lastIndexOf(strAntiga);"
Mas não a usou, nesse caso ela poderia ser retirada? ou se usou, onde usou?

Share this post


Link to post
Share on other sites

O problema do seu código e que você sempre irá buscar a ultima palavra independente se for "parte" ou não, o correto seria buscar pela ultima ocorrência da palavra parte que é o que está sendo pedido no enunciado eu fiz dois exemplos, um usando Regex que é o que eu usaria e outro usando alguns metodos do javascript de manipulação de array.

 

/// Esse exemplo eu fiz poucas alterações apenas busquei a funcionalidade

function trocarNome(){
    var frase = document.getElementById("frase").value;
    var strAntiga = document.getElementById("strAntiga").value;
    var strNova = document.getElementById("strNova").value;
    
    frase = frase.split(" ");
   
    var newSemteced = replaceValueList(frase, strAntiga, strNova);

    document.getElementById("result").innerHTML = newSemteced;
}

function replaceValueList(frase, strAntiga, strNova) {
  var reverseSentece =  frase.reverse();
  var findedIndex = reverseSentece.findIndex(itemArray => itemArray === strAntiga);
  reverseSentece[findedIndex] = strNova;
  var newSentenceReverse = reverseSentece.reverse();
  
  return newSentenceReverse.join(' ');
}

//Agora o código que eu me sentiria melhor em desenvolver

// Alternative solution
function trocarNome2() {
  var frase = getValue("frase");
  var strAntiga = getValue("strAntiga");
  var strNova = getValue("strNova");
  
  var regex = buildRegex(strAntiga);
  var newSentence = replaceLastOccurrence(frase, regex, strNova);
  
  setSentence(newSentence);
}

function buildRegex(strAntiga) {
  return strAntiga+'$';
}

function setSentence(sentence) {
  document.getElementById("result").innerHTML = sentence;
}

function replaceLastOccurrence(frase, regex, strNova) {
  return frase.replace(new RegExp(regex), strNova);
}

function getValue(idElement) {
  return document.getElementById(idElement).value;
}

JSBin: https://jsbin.com/keyotoseyu/edit?html,js,console,output

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By manoaj
      Boa tarde pessoal!
      Criei um sistema simples pra web utilizando PHP no backand.
      Mas agora antes do lançamento do sistema surgiu a necessidade de um app de consulta a esse sistema com funções básicas da plataforma Web, ou seja nem todas as funcionalidades serão implementadas no app agora no início.
      Qual a minha melhor alternativa no desenvolvimento híbrido hj em questão de agilidade no desenvolvimento considerando que minha plataforma web e o banco de dados mysql já estão prontos???
    • By adolfo-moro
      Tenho um sistema feito em C# em Windows Form, gostaria de saber se tem algum jeito Do sistema abrir o navegador padrão do sistema Operacional, direcionar para meu site onde terá uma tela de login, a pessoa efetua o login e quando o mesmo for validado, o navegador fechar e voltar para o sistema com o valor do cookie gerado pelo site ou com um código do login, para efetuar posteriores operações por webservice.
      Não seria utilizando o WebBrowser
    • By Kauê Fucherberger Bonfá
      eu estou tentando fazer um programa que mostra qual produto vale mais a pena mas eu fiz um if falando que quando o preço e a quantidade dos produtos são iguais a frase "os produtos sao iguais" aparece mas por algum motivo o if não está funcionando.
      <div id="produto1"> <div><input type="number" id="preco1" placeholder="preco"></div> <div><input type="number" id="quantidade1" placeholder="quantidade"></div> </div> <div id="produto2"> <div><input type="number" id="preco2" placeholder="preco"></div> <div><input type="number" id="quantidade2" placeholder="quantidade"></div> </div> <div><button onclick="calcular()">calcular</button></div> <div><p>resultado:<a id="resultado"></a></p></div> <script> function calcular() { var q1 = document.getElementById('quantidade1').value var p1 = document.getElementById('preco1').value var q2 = document.getElementById('quantidade2').value var p2 = document.getElementById('preco2').value if (p1 == p2 && q1 == q2) { document.getElementById('resultado').innerText = 'Os produtos são iguais' } } </script> Não coloquei o codigo inteiro mas acho que assim da pra entender
    • By victorhupo
      Eu tenho um código html e quero que a partir de um formulário o javascript modifique o conteúdo dele porem tenho um conhecimento raso.
       o código seria esse.
      <textarea> <div class="separator" style="clear: both; text-align: center;"> <a href="https://1.bp.blogspot.com/-TDuaU9uqbks/XVQ-Oj0THFI/AAAAAAAAEJw/mMdKEcvI-LwDoTVkcam8OVPse77LndSowCLcBGAs/s1600/S01E08.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="901" data-original-width="1600" src="https://1.bp.blogspot.com/-TDuaU9uqbks/XVQ-Oj0THFI/AAAAAAAAEJw/mMdKEcvI-LwDoTVkcam8OVPse77LndSowCLcBGAs/s1600/S01E08.png" /></a></div> </textarea> eu preciso que a partir do link q o usuário colocar no formulário ele substitua esse link de imagem pelo que foi colocado na tabela. alguém tem alguma solução?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.