当用户点击表单的某个部分时,我想要替换的选项中包含文本。我希望所有出现的$...
都替换为...%
,反之亦然,如下所示:
$("#coupon_type option").on("click", function(){
var coupon_type = $(this).val();
if (coupon_type == 'FreeShippingCoupon') {
$(".coupon_value_div").hide();
} else if (coupon_type == 'PercentageCoupon') {
//replace all the '$ ...' with '... %'
//for text in $("#coupon_value option").text()
$(".coupon_value_div").show();
} else if (coupon_type == 'FlatCoupon') {
//replace all the '... %' with '$ ...'
$(".coupon_value_div").show();
}
});
我想替换此选择中的文字:
<select id="coupon_value" name="coupon[value]">
<option value="5">$5.00</option>
<option value="10">$10.00</option>
<option value="15">$15.00</option>
<option value="20">$20.00</option>
<option value="25">$25.00</option>
<option value="30">$30.00</option>
<option value="35">$35.00</option>
<option value="40">$40.00</option>
<option value="45">$45.00</option>
<option value="50">$50.00</option>
<option value="55">$55.00</option>
<option value="60">$60.00</option>
<option value="65">$65.00</option>
<option value="70">$70.00</option>
<option value="75">$75.00</option>
<option value="80">$80.00</option>
<option value="85">$85.00</option>
<option value="90">$90.00</option>
<option value="95">$95.00</option>
</select>
答案 0 :(得分:3)
您可以使用text
方法转换选项中的值,并使用正则表达式仅在文本是预期的情况下进行替换:
$('#coupon_value option').text(function(i, s){ return s.replace(/^\$(.+)$/, '$1%'); });
反过来说:
$('#coupon_value option').text(function(i, s){ return s.replace(/^(.+)%$/, '$$$1'); });
答案 1 :(得分:0)
舞步三步:
step1 = string.replace(/\$([0-9]+\.[0-9]+)/g, "DOLLAR$1");
step2 = step1.replace(/([0-9]+\.[0-9]+)%/g, "$$$1");
step3 = step2.replace(/DOLLAR([0-9]+\.[0-9]+)/g, "$1%");
解释
操作switch-a-roo,
$1.23
更改为DOLLAR1.23
1.23%
更改为$1.23
(替换中的多个$
是因为您需要$
来逃避文字$
) DOLLAR1.23
更改为1.23%