Regex Tweak: eliminar corchetes

Tengo el siguiente script:

    $(".Text").contents().each(function () {
   $(this).replaceWith($(this).text()
            .replace(/\[([^\]]*)\]/g, '<span class="IT_Symbol" style="display:inline;border: 1px solid blue;">$&</span>')
        );
    });

Encuentra cualquier cosa entre corchetes y lo envuelve con una clase. El estilo del elemento es para que pueda verlo funcionando, ya que este script se activa con un doble clic. Actualmente encuentra todo entre corchetes, incluidos los propios corchetes. Si es posible, me gustaría quitar los corchetes, pero me quedo con lo que hay entre ellos.

preguntado el 16 de mayo de 11 a las 17:05

@ianace Si va a editar código, ¡no lo convierta en Javascript ilegal! -

1 Respuestas

Estás reemplazando con $&, que es todo el texto coincidente. Si reemplaza con $1 en cambio, esto solo coincide con el primer grupo, que es ([^\]]*)y, por lo tanto, excluye los corchetes circundantes.

$(".Text").contents().each(function () {
    $(this).replaceWith($(this).text().replace(/\[([^\]]*)\]/g, '<span class="IT_Symbol" style="display:inline;border: 1px solid blue;">$1</span>'));
});

contestado el 16 de mayo de 11 a las 21:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.