Compatibilidad con Safari con XRegExp 0.2.2

Cuando lancé XRegExp 0.2 hace varios días, aún no había probado en Safari o Swift. Cuando recordé hacer esto poco después, descubrí que a ambos navegadores basados ​​en WebKit no les gustaba y, a menudo, fallaban al intentar usarlo. Obviamente, esto fue algo muy malo, pero debido a importantes problemas de disponibilidad de tiempo, no pude solucionar los errores y realizar pruebas en profundidad hasta esta noche.

Resulta que el motor de expresiones regulares de Safari contiene un error que provoca que se arroje un error al compilar una expresión regular que contiene una clase de carácter que termina con "[\\ ".

// These throw an error:
[ /[[\\]/ , /[^[\\]/ , /[abc[\\]/ ]

// ...While these are all fine:
[ /[\\[]/ , /[\[\\]/ , /[[]/ , /[\\]/ , /[[\\abc]/ , /[[\/]/ , /[[(\\]/ ]

// Testing:
try {
	RegExp("[[\\]");
	alert("OK!");
} catch (err) {
	alert(err);
	/* Safari shows:
	"SyntaxError: Invalid regular expression: missing terminating ] for
	character class" */
}

Como resultado, he cambiado dos instancias de [^[\\] a [^\\[] y aumentó el número de versión a 0.2.2. XRegExp ahora ha sido probado y funciona sin ningún problema conocido en todos los siguientes navegadores:

  • Internet Explorer 5.5 - 7
  • Firefox 2.0.0.4
  • Ópera 9.21
  • Safari 3.0.2 beta para Windows
  • Velocidad 0.2

Puede obtener la versión más reciente aquí.