Ich versuche, Regexes (/ komplexe regex here /) von Division (/) in einer JavaScript-Datei zu unterscheiden, indem Sie es als Puffer in Node .js und gehen nacheinander durch die Zeichen. Der GrundUnterscheiden Regexes von einem Schrägstrich (Division) in einem JavaScript-Dateien mit Node.js
const fs = require('fs');
const buf = fs.readFileSync('sample.js');
const slash = '/'.codePointAt(0);
const backSlash = '\\'.codePointAt(0);
let escaped = false;
for(let key of buf.keys()) {
if(buf[key] === slash && !escaped) {
// How do I distinguish this slash? Is it a regex or is it a division sign?
}
if(escaped) {
escaped = false;
} else if(buf[key] === backSlash) {
escaped = true; // set escaped to true to ignore the next character.
}
}
Es sind keine Kommentare in der Datei so muss ich nicht über //
, /*
oder */
Sorge Wie soll ich zwischen einem Divisionszeichen und einer regex unterscheiden?
Es ist einfacher, nur einen Parser zu verwenden, z.B. Esprima. – gcampbell
Verwenden Sie eine Parser-Bibliothek wie Eichel oder Esprima; es ist kein Problem, das durch reguläre Ausdrücke entschieden werden kann. – Kovensky