In einem JS Stringliteral, müssen Sie Schrägstriche entkommen. Das heißt, um einen String mit einem einzelnen Backslash zu erstellen, würden Sie das Literal '\\'
verwenden. Wenn Sie die Regex \[
in einer Zeichenfolge darstellen möchten, benötigen Sie '\\['
(und so weiter für jeden umgekehrten Schrägstrich in Ihrer bestimmten Regex).
Außerdem sind die /
Zeichen nicht Teil des regulären Ausdrucks, in JS geben sie an, dass Sie ein reguläres Ausdrucksliteral verwenden. Also, wenn Sie eine Zeichenfolge mit new RegExp()
tun nicht verwenden Sie die /
am Anfang und Ende.
So:
option = option.replace(new RegExp('\\[[^\\]]*\\]'), '');
Aber anstatt new RegExp()
mit einem String verwenden, ist es einfacher zu verwenden nur einen regulären Ausdruck wörtlichen:
option = option.replace(/\[[^\]]*\]/, '');
Wenn Sie eine längere Zeichenfolge mit mehreren Fällen von [...]
haben , etwas wie 'Texture[0] Colour[3] Size[2]'
dann benötigen Sie eine globale ersetzen, die Sie tun, indem Sie die g
Flag der Regex wie folgt hinzufügen:
option = option.replace(/\[[^\]]*\]/g, '');
ohne regex können Sie split verwenden. sieh dir das an (Demo) (https://jsfiddle.net/pt7nk9zw/) – guradio