首页 > 解决方案 > 替换选项值的每个实例,对我不起作用

问题描述

我有这样的价值

<option value="RB+TE+WR+DEF+CB">text</option>

我正在尝试用“-”替换所有“+”实例

我的两次尝试都只替换了第一个“+”,结果是

<option value="RB-TE+WR+DEF+CB">text</option>

这是我尝试过的

$('option').each(function () {
    $(this).val(function (i, v) {
        return v.replace("+", "-");
    });
})

$('option').val(function (i, v) {
    return v.replace("+", "-");
});

$('option').val(function (i, v) {
    return v.replace(new RegExp("/+/", "g"), '-');
});

我需要结果是

<option value="RB-TE-WR-DEF-CB">text</option>

标签: jquery

解决方案


您需要转义+in 正则表达式。

$('option').val(function (i, v) {
    return v.replace(/\+/g, "-");
});

使用.replaceAll()在 IE 中不起作用

$('option').val((i, v) => v.replaceAll("+", "-"));

推荐阅读