[^a]
significa cualquier carácter que no sea a
, lo sabemos, pero ¿qué significa [^]
(sin los siguientes caracteres)? Así como -
pierde su significado del rango de caracteres en casos como [-]
, supuse que [^]
coincidiría con el símbolo de intercalación. Pasé demasiado tiempo depurando este problema, solo para descubrir que al menos en Chrome 19 parece coincidir con cualquier cosa, en otras palabras, ser equivalente a .
. ¿Hay alguna especificación aplicable aquí o cuál es el comportamiento esperado?¿Qué significa [^] en expresiones regulares de Javascript?
Sí, soy consciente de que puedo y probablemente debería utilizar [\^]
. Esta pregunta está más en la naturaleza de la curiosidad morbosa.
Hmm. Niega el conjunto, pero si el conjunto está vacío ... ¿Coincide con algo siempre que no sea nada? Eso no parece correcto. ¿Qué hace [] coincidir? [^] debe coincidir con cualquier cosa que [] no coincida. – Okonomiyaki3000
Basado en las respuestas a continuación, ¡parece que significa que "esta expresión no debe usarse"! – jahroy
Prueba de rendimiento relacionada: http://jsperf.com/match-any-char-regex –