Aquí hay un fragmento de HTML que se carga en el sitio, no puedo cambiarlo ya que se carga a través de bloques de código en el carrito 3D:

    <div class="opt-field">
                <label for="text56">4kg - $19 [+$19.00]</label>
                <input type="text" size="3" name="text56" value="0"><br>

                <label for="text58">8kg/18lb - $29 - Currently Out of Stock [+$29.00]</label>
                <input type="text" size="3" name="text58" value="0"><br>

                <label for="text59">12kg/26lb - $39 - Currently Out of Stock [+$39.00]</label>
                <input type="text" size="3" name="text59" value="0"><br>
</div>

Y quiero eliminar el [+ $ precio] generado automáticamente que se adjunta a cada etiqueta. He probado muchas variaciones que he encontrado aquí, pero nada parece afectarlo.

    $(document).ready(function() {
        var str = $('.opt-field label');
        var r = str.replace(/[(\[].*?[)\]] */g, "");
        $('label').html(r);
    });

Aquí está el jsfiddle en el que lo he estado probando: https://jsfiddle.net/32rch0n9/1/

Gracias por cualquier ayuda / sugerencia

0
Chris Weems 10 may. 2016 a las 16:54

3 respuestas

La mejor respuesta
Reference: [https://jsfiddle.net/32rch0n9/5/][1]

Your regular expression works. The catch is you have to apply for each label. Refer to the above fiddle for sample.


  [1]: https://jsfiddle.net/32rch0n9/5/
0
Dhanasekar 10 may. 2016 a las 14:05

Si solo desea eliminar los corchetes, puede usar la siguiente expresión regular

[\*?[)\]]

Si desea eliminar los corchetes y el precio interior, use la siguiente expresión regular

[\[].*?[)\]]

Además, puede usar regexr.com para probar

http://regexr.com/3dd0l

0
chrismillah 10 may. 2016 a las 13:59

Su error es su código JS, no está trabajando con la lista de etiquetas.

$('.opt-field label').each(function(index, item){
        console.log($(item).text());
        var r = $(item).text().replace(/[(\[].*?[)\]] */g, "");
        $(item).html(r);
    });
0
cralfaro 10 may. 2016 a las 14:06