Angenommen, ich habe eine Zeichenfolge wie diese "hey this is StackOverflow" und meine substring ist "flow". Während der Suche nach substring in der Zeichenfolge wird mit *indexOf* true zurückgegeben.

Wie ich dies möchte, wenn es mit dem substring übereinstimmt, bei dem es sich um flow handelt, wird das HTML-Tag dazwischen angehängt:

Beispiel:

Eingabe: "hey this is StackOverflow"

Ausgabe: "hey this is StackOver <'sometag'> flow <'/sometag'> "

Der folgende Code gibt den Wert true zurück, hat jedoch keine Ahnung, wie das HTML-Tag darin angehängt werden soll.

substring.indexOf(string)

Bitte helfen Sie mir dabei, es ist sehr hilfreich, da ich mit JS nicht viel bewusster bin.

0
vikash 14 Aug. 2020 im 18:07

3 Antworten

Beste Antwort

Versuchen Sie die Methode zum Ersetzen von Zeichenfolgen:

let str= "hey this is StackOverflow, flow"


let newStr=str.replace(/flow/g,' <h1>flow</h1>')

console.log(newStr)

Dann können Sie es in der Vorlage mit der Anweisung v-html wie folgt rendern:

Vue.config.devtools = false;
Vue.config.productionTip = false;

new Vue({
      el: '#app',

      data() {
        return {
          str: "hey this is StackOverflow"
        }
      },

      computed: {
        newStr() {
        return  this.str.replace(/flow/g, '<b>flow</b>')
        }
      }})
<link type="text/css" rel="stylesheet" href="//unpkg.com/bootstrap/dist/css/bootstrap.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.js"></script>


<div id="app" class="container">

  <div v-html="str"></div>
  <div v-html="newStr"></div>
</div>
2
Boussadjra Brahim 14 Aug. 2020 im 15:24
let given_string = "hey this is StackOverflow" , search = "flow", my_tag = "Tag" , tagged = "";

if(given_string.indexOf(search) !== -1)
  {
    let splited = given_string.split(search);
    splited.forEach(item => {
      if(item !== "")
        {
          tagged += item + " " + "<"+ my_tag +">" + search + "</"+ my_tag +">";
        }
    })
    
    
    
  }

console.log(tagged);
0
sazzad 14 Aug. 2020 im 15:23

Was Sie brauchen, ist string.replace("sometag","<sometag>") anstelle von substring.indexOf(string)

1
HeshamSalama 14 Aug. 2020 im 15:13