2017-05-26 4 views
0

Ich verwende sanitize-html, um eingefügten Text für draftJS Editor zu reinigen.So ersetzen Sie Zeichen in HTML-Zeichenfolge mit JavaScript

Lets sagen Ergebnis könnte Textzeichenfolge wie diese

<h1 class="title"> President said "<b>Give this man a money</b>" and i agree </h1

Jetzt sein i " mit « oder » hängt von den Bedingungen ersetzen müssen. Wie soll ich das machen? Ich habe versucht, herauszufinden, ob ich es mit draftJSContentBlock Methoden tun kann, aber es scheint viel zu kompliziert. Also ich denke, es ist einfacher, HTML-String zu ändern.

Antwort

2

Sie können dies tun, mit zwei regulären Ausdrücken Ich denke:

var inputString = `<h1 class="title"> 
 
     President said "<b>Give this man a money</b>" and i agree 
 
    </h1>` 
 
     , startingQuoteRE =/"/g 
 
     , endingQuoteRE = /" /g 
 
     , outputString = '' 
 
     ; 
 
    outputString = inputString.replace(startingQuoteRE, " «"); 
 
    outputString = outputString.replace(endingQuoteRE, "» "); 
 
    // Or by chaining .replace 
 
    // outputString = inputString.replace(startingQuoteRE, " «").replace(endingQuoteRE, "» "); 
 
    console.log(outputString);

+0

War da nicht etwas über nicht HTML mit RegEx Parsen? –

+0

@Eldy Ja, es wird nicht empfohlen, HTML mit RegEx zu analysieren. Aber hier analysieren wir kein HTML, sondern tun nur einige Zeichenfolgen. – Booster2ooo

0
  1. erstellen replaceAll Funktion. Weil replace Funktion das einzige erste Vorkommen ersetzt.

    String.prototype.replaceAll = function(string, replace) { 
    return this.split(string).join(replace); 
    }; 
    
  2. Rufen Sie die Funktion so.

    var str = '<h1 class="title">\ 
    President said "<b>Give this man a money</b>" and i agree\ 
    </h1>'; 
    var result = str.replaceAll('"','\''); 
    console.log(result); 
    
Verwandte Themen