Ho visto il crash dell'espressione regolare della parola

Questo è un bug duplice.

Innanzitutto, un errore in un’espressione regolare causa un errore del server 500 quando viene effettuato un post.
Vedi anche questo precedente rapporto di bug Invalid regular expressions in 'Watched Words' makes no watched word work (scenario: peggiore).

In secondo luogo, un’espressione regolare precedentemente corretta che esegue l’escape di un trattino, ora viene vista come errata. Quindi, dove \\- funzionava prima della versione stabile 3.1.0, ora causa un errore fatale.

Ciò sta probabilmente accadendo a causa dell’attivazione di Unicode in 9a27803.

Vedi Regular expression syntax cheat sheet - JavaScript | MDN

Nota che alcuni caratteri come :, -, @, ecc. non hanno un significato speciale né quando vengono sottoposti a escape né quando non vengono sottoposti a escape. Le sequenze di escape come \\:, \\-, \\@ saranno equivalenti ai loro caratteri letterali non sottoposti a escape nelle espressioni regolari. Tuttavia, nelle espressioni regolari con il flag unicode, questi causeranno un errore di fuga di identità non valida. Ciò viene fatto per garantire la compatibilità con il codice esistente che utilizza nuove sequenze di escape come \\p o \\k.

ma sarebbe bello se ci fosse un gestore di eccezioni qui.

10 Mi Piace

Abbiamo questa priorità ora, ci arriveremo nelle prossime 4 settimane.

7 Mi Piace

Questo è stato risolto:

Sto attualmente cercando un modo per abilitare la convalida delle espressioni regolari JS dal lato Ruby. Spero di avere presto una soluzione pronta.

6 Mi Piace

Ho iniziato a ricevere l’errore 500 sui nuovi post da un recente aggiornamento (la scorsa settimana). C’erano anche errori relativi alle email (in sidekiq, erano correlati alle parole monitorate). Me ne sono accorto solo oggi. Ho provato a eseguire un aggiornamento ma l’errore 500 durante la pubblicazione era ancora presente. L’unica soluzione temporanea che ho trovato per ora è rimuovere tutte le parole monitorate.

Non riesco a riprodurlo senza ulteriori informazioni. Hai l’impostazione del sito watched_words_regular_expressions abilitata? Puoi caricare il tuo elenco di parole monitorate in modo che io possa testare? O magari controllare i tuoi log (https://your-forum/logs) e pubblicare qui le tracce dello stack relative alle parole monitorate.

Hai abilitato l’impostazione del sito watched_words_regular_expressions? → No

Ho fatto alcuni test, sembra che accada solo con i *caratteri jolly
asteriskexampleasterisk → questo genera un errore 500
example → viene sostituito correttamente

asterisk è *

@RGJ ritieni che l’OP sia stato affrontato?

Abbiamo unito questa PR

2 Mi Piace