jquery - 如何从字母和数字混合的字符串中获取数字

时间:2014-06-13 03:06:26

标签: jquery html

如何使用JQuery从下拉列表中选择数字?

<select aria-invalid="false" id="RatePercent" class="wpcf7-form-control wpcf7-select ratePercent" name="RatePercent">
    <option value="">---</option>
    <option value="Floating-6.5%">Floating-6.5%</option>
    <option value="6 Months-5.65%">6 Months-5.65%</option>
    <option value="1 Year-5.85%">1 Year-5.85%</option>
    <option value="18 Months-5.99%">18 Months-5.99%</option>
    <option value="2 Years-6.19%">2 Years-6.19%</option>
    <option value="3 Years-6.85%">3 Years-6.85%</option>
    <option value="4 Years-7.19%">4 Years-7.19%</option>
    <option value="5 Years-7.40%">5 Years-7.40%</option>
</select>

如果您选择1年-5.85%,则会返回&#39; 5.85&#39;而不是&#39; 1年-5.85%&#39;?

5 个答案:

答案 0 :(得分:1)

使用.prop()和替换函数:

$(selector).prop("value").replace(/.*\-([0-9\.]+).*/, "$1");

这会从属性中提取完整值并仅返回数字。

这是jsfiddle:http://jsfiddle.net/zR6FC/

答案 1 :(得分:1)

试试这个:

$('#RatePercent').change(function() {
    var val = $(this).val();
    if (val != '') {
        val = parseFloat(val.split('-')[1]);
    }
    console.log(val);
});

jsFiddle

答案 2 :(得分:0)

在这里使用拆分,如:

 $('#RatePercent').change(function() {
  var val = $(this).val();
 if (val != '') {
    val = parseFloat(val.split('-')[1].split('%')[0]);
 }
  alert("Required value= "+val);
});
希望这会有所帮助。

答案 3 :(得分:0)

使用正则表达式:

$('#RatePercent').on('change', function() {
    var re = /(\d(?:\.\d*))%$/,
    matches = this.value.match(re);

    if (matches) {
        console.log(matches[1]);
    }
});

Demo

答案 4 :(得分:0)

我的建议,请使用$.data()

<select aria-invalid="false" id="RatePercent" class="wpcf7-form-control wpcf7-select ratePercent" name="RatePercent">
    <option value="">---</option>
    <option value="Floating-6.5%" data-number="6.5">Floating-6.5%</option>
    <option value="6 Months-5.65%" data-number="5.65">6 Months-5.65%</option>
</select>

访问:

$(this).data("number");