是否可以使用RegEx从字符串中获取括号内的数字? 例如,我选择的内容如下:
<select class="selectoption">
<option value="1">no numbers</option>
<option value="2">3 (+110.0 грн.)</option>
<option value="3">Blabla (+95.5 грн.)</option>
</select>
当用户选择带括号(110或95.5)的选项时,我只需要获取数字。
现在我有:
$('.selectoption').change(function() {
if ( $("select option:selected").text().match(/\(.*\)/).length ){}
alert (
$("select option:selected").text().match(/\(.*\)/)
);
end
});
但它返回(+110.0 грн.)
:(
答案 0 :(得分:4)
尝试:
$('.selectoption').on('change', function () {
var m = $(this).find(':selected').text().match(/\(.*?([\d.]+).*?\)/);
console.log(
m && m[1] || 'n/a'
);
});
答案 1 :(得分:2)
Match返回你在regexp中定义的char组数组。 您可以使用替换匹配
$("select option:selected").text().replace(/^(.*)\([^\)\d]*(\d+\.\d+)[^\)\d]*\)$/, '$2')
答案 2 :(得分:1)
看起来应该是这样的:
$('form').on('change', '.selectoption', function() {
var content = $('option:selected', this).text(),
matches = content.match(/\([^\d]*(\d+(\.\d*)?)/);
if (matches.length) {
alert(matches[1]);
}
});
form
是.selectoption
个父母之一,如果选择不正确,请更改选择器。
如果您不需要可以使用的委托:
$('.selectoption').on('change', function() {
正如您在编辑时所做的那样。它的工作原理完全相同:)
<强> Example Code 强>