1

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 грн.):(

4

3 に答える 3

4

試す:

$('.selectoption').on('change', function () {
  var m = $(this).find(':selected').text().match(/\(.*?([\d.]+).*?\)/);
  console.log(
    m && m[1] || 'n/a'
  ); 
});

http://jsbin.com/ekanog/1/

于 2012-11-09T12:09:32.887 に答える
2

Matchは、regexpで定義したcharグループの配列を返します。代わりに置換を使用できます一致

  $("select option:selected").text().replace(/^(.*)\([^\)\d]*(\d+\.\d+)[^\)\d]*\)$/, '$2')
于 2012-11-09T12:04:08.447 に答える
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親の1人である.selectoptionため、セレクターが正しくない場合はセレクターを変更してください。

委任が必要ない場合は、次を使用できます。

$('.selectoption').on('change', function() {

編集したときと同じように。それはすべて同じように機能します:)

サンプルコード

于 2012-11-09T12:06:14.543 に答える