jQuery从标签中删除括号/文本

jQuery Remove Brackets/Text from Label

本文关键字:文本 删除 标签 jQuery      更新时间:2023-09-26

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

    <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>

我想删除每个标签上自动生成的[+$price]。我已经尝试了很多我在这里发现的变化,但似乎没有什么影响它

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

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

感谢您的任何帮助/建议

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

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

如果只想去掉括号,可以使用以下regex

['*?[)']]

如果你想删除括号和价格内部使用以下regex

['[].*?[)']]

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

http://regexr.com/3dd0l