Nelle espressioni regolari di seguito, \s
denota un carattere di spazio. Immagino il parser regex, sta attraversando la stringa e vede \
e sa che il prossimo carattere è speciale.Perché i costruttori di espressioni regolari devono essere sottoposti a doppio escape?
Ma questo non è il caso in quanto sono richieste doppie fughe.
Perché è questo?
var res = new RegExp('(\\s|^)' + foo).test(moo);
C'è un esempio concreto di come un singolo fuga potrebbe essere mis-interpretata come qualcosa di diverso?
Ricordate, non è necessario che Java o il costruttore di Regexp abbiano bisogno di chiarimenti, è il compilatore (o il parser). – GJK
Per aggiungere alle risposte già corrette: si noti che se si scrive un valore letterale RegExp in JavaScript, * non * è necessario sfuggire alla barra rovesciata, come si sospetterebbe: '/ (\ s | ^) /' –