JavaScript Regex, dove usare i caratteri di escape?

La regex consente i caratteri che sono: alfanumerico, spazio, ‘-‘, ‘_’, ‘&’, ‘()’ e ‘/’

questa è l’espressione

[\s\/\)\(\w&-] 

Ho provato questo in vari tester online e so che funziona, non riesco a farlo funzionare correttamente nel codice. Ottengo errori sysntax con qualsiasi cosa provi .. qualche suggerimento?

 var programProductRegex = new RegExp([\s\/\)\(\w&-]); 

Puoi usare la syntax delle espressioni regolari:

 var programProductRegex = /[\s\/\)\(\w&-]/; 

Usa le barre in avanti per delimitare il modello regex.

Se si utilizza il costruttore di oggetti RegExp, è necessario passare una stringa. Poiché i backslash sono caratteri di escape speciali all’interno delle stringhe JavaScript e anche i caratteri di escape nelle espressioni regolari, è necessario utilizzare due barre rovesciate per eseguire un’espressione regolare all’interno di una stringa. Il codice equivalente usando una stringa sarebbe quindi:

 var programProductRegex = new RegExp("[\\s\\/\\)\\(\\w&-]"); 

Tutte le barre retroverse che erano nell’espressione regolare originale devono essere sottoposte a escape nella stringa per essere correttamente interpretate come barre retroverse.

Ovviamente la prima opzione è migliore. Il costruttore è utile quando si ottiene una stringa da qualche parte e si vuole fare un’espressione regolare.

 var programProductRegex = new RegExp(userInput); 

Se si sta utilizzando una stringa e si desidera eseguire l’escape di caratteri come ( , è necessario scrivere \\( (che significa scrivere la barra rovesciata, quindi la parentesi di apertura => sfuggirla).

Se stai usando l’object RegExp , hai bisogno di una sola barra rovesciata per ogni carattere (come \( )

Racchiudi la tua espressione regolare con delimitatori:

 var programProductRegex = /[\s\/)(\w&-]/;