Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery中的正则表达式:括号内的数字_Javascript_Jquery_Regex - Fatal编程技术网

Javascript jQuery中的正则表达式:括号内的数字

Javascript jQuery中的正则表达式:括号内的数字,javascript,jquery,regex,Javascript,Jquery,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 class="selectoption">
    <option value="1">no numbers</option>
    <option value="2">3 (+110.0 грн.)</option>
    <option value="3">Blabla (+95.5 грн.)</option>
</select>

但它返回+110.0ΓБа:

Match返回在regexp中定义的字符组数组。 您可以使用replace代替match

  $("select option:selected").text().replace(/^(.*)\([^\)\d]*(\d+\.\d+)[^\)\d]*\)$/, '$2')

Match返回在regexp中定义的字符组数组。 您可以使用replace代替match

  $("select option:selected").text().replace(/^(.*)\([^\)\d]*(\d+\.\d+)[^\)\d]*\)$/, '$2')

应该是这样的:

$('form').on('change', '.selectoption', function() {
    var content = $('option:selected', this).text(),
        matches = content.match(/\([^\d]*(\d+(\.\d*)?)/);
    if (matches.length) {
        alert(matches[1]);
    }
});
窗体是.selectoption父项之一,如果选择器不正确,请更改它

如果您不需要授权,您可以使用:

$('.selectoption').on('change', function() {
正如您在编辑时所做的那样。它的工作原理是一样的:


应该是这样的:

$('form').on('change', '.selectoption', function() {
    var content = $('option:selected', this).text(),
        matches = content.match(/\([^\d]*(\d+(\.\d*)?)/);
    if (matches.length) {
        alert(matches[1]);
    }
});
窗体是.selectoption父项之一,如果选择器不正确,请更改它

如果您不需要授权,您可以使用:

$('.selectoption').on('change', function() {
正如您在编辑时所做的那样。它的工作原理是一样的:

尝试:

尝试:


live已被弃用。让你知道。live已被弃用。让你知道,谢谢。。。我不熟悉正则表达式。它返回+110.0Γра,但我不需要+和`Γаа`:谢谢。。。我不熟悉正则表达式。它返回+110.0Γра,但我不需要+和'Γаа!':谢谢!但还有一件事+100 грн. => 100,但+99.5ГПа=>99不带.5:[这就是它的作用。看看我添加的代码示例。除非你想保留分数?修正了它也带分数。现在就可以了!不幸的是,我不能接受更多的答案,但这是一个很好的变体,谢谢!谢谢!但还有一件事…+100Γа=>100,但+99.5Γа=>99不带.5:-[这就是它的作用。看看我添加的代码示例。除非你想保留分数?修复它以获取分数。现在就可以了!不幸的是,我不能接受更多的答案,但这是一个很好的变体,谢谢!+1,我会发布/\\d*\d+:\。\d+\d*\/作为答案,但你的正则表达式看起来更干净。+1,我会发布/\\d*\d+:\。\d+\d*/作为答案你的正则表达式看起来干净多了。