Ihr aktuelles Muster entspricht einem Caret, gefolgt von einem Leerzeichen (Leerzeichen, Tabulator, neue Zeile usw.). Sie möchten jedoch einen Caret gefolgt von einem einzelnen Zeichen oder mehreren Zeichen in Akkorden als Zeichenfolge angeben ist in TeX.
/\^(?:([\w\d])|\{([\w\d]{2,})\})/g
Jetzt sollte str = str.replace(/\^(?:([\w\d])|\{([\w\d]{2,})\})/g, "<sup>$1</sup>");
die Arbeit tun.
Sie können eine allgemeinere Funktion aus diesem Ausdruck erstellen, die Zeichen, denen ein bestimmtes Zeichen vorangestellt ist, mit einem bestimmten Tag umbrechen kann.
function wrapPrefixed(string, prefix, tagName) {
return string.replace(new RegExp("\\" + prefix + "(?:([\\w\\d])|\\{([\\w\\d]{2,})\\})"), "<" + tagname + ">$1</" + tagname + ">");
}
Zum Beispiel ruft wrapPrefixed("1_2 + 4_{3+2}", "_", "sub");
Ergebnisse in 1<sub>2</sub> + 4<sub>3+2</sub>
.
Versuchen Sie '.replace (/ \^(\ d +)/g, '$ 1')'. Müssen Sie auch Whitespace um diese Werte auf eine bestimmte Weise verwalten? –
Nein es ist genug..ich habe meine Antwort, danke für deine Hilfe. – prasanth
Wenn ich mit Doppel-Tag-Funktion in der gleichen einzelnen Regexp wie folgt angewendet werden kann: - '"^"Ersetzen durch $ 1' und '" ⌄ "ersetzen durch 1 $ ' .Was soll ich tun? Bitte sag, wie kann ich den Code ändern? – prasanth