jQuery替换option的value属性中所有+为-仅首个生效求助
问题原因
- 使用
replace("+", "-")写法时,JavaScript默认仅替换第一个匹配到的+字符,无法匹配全部 - 正则写法存在两处错误:
RegExp构造函数不需要额外添加/分隔符,且+是正则特殊量词,必须转义才能匹配字面量的加号,所以原有正则规则无法匹配到目标字符
正确实现代码
字面量正则写法(更推荐)
$('option').val(function (i, v) { return v.replace(/\+/g, '-'); });
RegExp构造函数写法
$('option').val(function (i, v) { return v.replace(new RegExp('\\+', 'g'), '-'); });
说明:正则中\用来转义+,使其被识别为普通加号字符,g修饰符代表全局匹配所有符合规则的字符,即可一次性替换所有+为-。
内容的提问来源于stack exchange,提问作者MShack
相关产品推荐
相关产品推荐

