• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Fehler in der if-Abfrage?!?

Paule2020

New member
EDIT: hat sich erledigt...Ich habe einfach "frac" statt "\frac" geschrieben und es klappt... Ich verstehe zwar nicht, wieso, weil es bei den anderen LaTeX-Befehlen auch klappt, aber was solls...
Hallo,

ich habe wohl einen Fehler in meiner Abfrage, aber ich finde den Fehler nicht.

Ich möchte, sobald mathsym oder boolean true sind, dass auch true ausgeben wird bzw. das ein String in LaTeX compiled wird und das klappt eigentlich auch, außer, wenn ich als Text nur "\frac{...}" eingebe.

Hier mein Code:

Code:
var mathsymbol = ["\frac{","^", "\sqrt","\sin", "\cos", "\tan", "\pi", "\ln", "\cdot", "\int", "\dx"];
var buchstaben = /[a-zA-Z]/;

function latexanzeige(text){
    var msym = false;
    var boolean = true;
    for(i = 0; i <mathsymbol.length; i++){
        if(text.includes(mathsymbol[i])){
            msym = true;
            break;
        }
    }

    if(buchstaben.test(text)){
    boolean = false;
    }
    
    return (msym||boolean);
    }

Komisch ist, dass wenn ich "\frac{\pi}{2}" eingebe, wird zu LaTeX compiled, siehe Bild 2020-09-22 18_14_15-Korrektur.png

Sieht jemand den Fehler? Und ich habe \frac... auf dem oragangen Hintergrund sicher richtig geschrieben...
 
Zuletzt bearbeitet:
Der backslash wird in Stringliteralen zum Maskieren verwendet.

Schau' dir einfach mal den Unterschied hier an:
Code:
var mathsymbol = ["\frac{","^", "\sqrt","\sin", "\cos", "\tan", "\pi", "\ln", "\cdot", "\int", "\dx"];
var mathsymbol2 = ["\\frac{","^", "\\sqrt", "\\sin", "\\cos", "\\tan", "\\pi", "\\ln", "\\cdot", "\\int", "\\dx"];
alert(mathsymbol);
alert(mathsymbol2);

PS: \tan hat auch nicht funktioniert...
 
Zurück
Oben