Ich habe einige Requisiten mit einer Zeichenfolge, die Zeichen wie & enthalten kann. Es enthält auch Leerzeichen. Ich möchte alle Leerzeichen durch ersetzen
.
Gibt es eine einfache Möglichkeit, dies zu tun? Denken Sie daran, dass ich nicht einfach mit dieser Syntax rendern kann:
<div dangerouslySetInnerHTML={{__html: myValue}} />
weil ich zuerst alle HTML-Entitäten durch ihr Markup ersetzen müsste. Ich möchte das nicht tun müssen, es scheint zu niedrig.
Gibt es eine Möglichkeit, dies zu tun?
 l;
, möchten Sie HTML-Tags buchstäblich anzeigen oder möchten Sie noch etwas tun?myValue
zugänglich ist. Sie können in der entsprechenden Lebenszyklusfunktion darauf warten, es analysieren und einparsed
Flag setzen, das das mehrfache Parsen verhindert.dangerouslySetInnerHTML
Methode anwenden, ohne sich dem Dom zu entziehen und zu reagieren . Ich sehe keinen Ausweg, da Sie Javascript verwenden könnten, um eine Zeichenfolge zu erstellen, die Leerzeichen durch & nbsp; aber ohne diedangerouslySetInnerHTML
Methode zu verwenden, werden diese durch Reaktion entkommen.Antworten:
Anstatt die
HTML-Entität zu verwenden, können Sie das Unicode-Zeichen verwenden,
auf das verwiesen wird (U + 00A0 NON-BREAKING SPACE):quelle
Ich weiß, dass dies eine alte Frage ist, und dies tut nicht genau das, wonach Sie gefragt haben, aber anstatt die Zeichenfolge zu bearbeiten, wird das, was Sie erreichen möchten, wahrscheinlich besser mit dem CSS-
white-space: nowrap
Attribut gelöst :In HTML:
In Reaktion:
quelle
Wenn Sie eine hübsche XML anzeigen möchten:
quelle
Nun, es ist sehr schwer, hier zu tippen, ohne dass es verschwindet, also füge ich ein kleines Leerzeichen hinzu, damit jeder es sehen kann. Wenn Sie das Leerzeichen aus diesem Tag <nbsp /> entfernen, können Sie in React ein nicht unterbrechendes Leerzeichen verwenden.
React übersetzt dieses JSX-Tag in einen nicht unterbrechenden Bereich. Seltsame Eigenart: Dies muss auch in derselben Zeile wie der Text verwendet werden, den Sie platzieren möchten. Nicht unterbrechende Leerzeichen mit diesem Tag werden in React nicht gestapelt.
quelle
Warning: The tag <nbsp> is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter
Um Leerzeichen zwischen den Zeichenfolgen zu entfernen, funktioniert der folgende Code für mich. zB: "afee dd" Ergebnis: "afeedd"
{myValue.replace (/ \ s + / g, '')}quelle
Sie haben also einen Wert wie diesen "Hallo Welt", und wir werden sagen, dass er in ist
this.props.value
.Du kannst das:
jsbin
quelle