jQuery 从标签中删除 Brackets/Text

jQuery Remove Brackets/Text from Label

这是网站上加载的 HTML 片段,我无法更改它,因为它是通过 3D 购物车中的代码块加载的:

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

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

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

我想删除自动生成的附加到每个标签的 [+$price]。我已经尝试了在这里找到的许多变体,但似乎没有任何影响。

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

这是我一直在尝试的 jsfiddle:https://jsfiddle.net/32rch0n9/1/

感谢任何 help/suggestions

如果您只想删除括号,可以使用以下正则表达式

[\*?[)\]]

如果您想删除括号和里面的价格,请使用以下正则表达式

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

此外,您可以使用 regexr.com 进行测试

http://regexr.com/3dd0l

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/

你的错误是你的 JS 代码,你没有使用标签列表。

$('.opt-field label').each(function(index, item){
        console.log($(item).text());
        var r = $(item).text().replace(/[(\[].*?[)\]] */g, "");
        $(item).html(r);
    });