JQuery: как мы можем отфильтровать int из переменной - PullRequest
0 голосов
/ 30 марта 2012

Возможно ли отфильтровать числа из переменной.

Я могу показать вам один пример по ссылке http://jsfiddle.net/sweetmaanu/82r5v/6/

Мне нужно получить только цифры из сообщения с предупреждением

Ответы [ 6 ]

2 голосов
/ 30 марта 2012

Итак, вместо box1, box2, box3, box4 вы хотите увидеть 1,2,3,4

Вы можете использовать регулярное выражение, например this :

var order = $("#boxes").sortable("toArray") + "";
alert(order.replace(/[^0-9,]/g, ''));

Мне также пришлось добавить пустую строку к order, потому что она не распознавалась как строковый объект, хотя в документации jQuery сказано, что это должно быть при вызове sortable("toArray").

2 голосов
/ 30 марта 2012

Просто замените строку коробки из нее.

DEMO

for (var i = 0; i < order.length; i++) {
   order[i] = order[i].replace('box', '');
}
0 голосов
/ 30 марта 2012

изменение var order = $("#boxes").sortable("toArray");

на var order = $("#boxes").sortable("toArray").join(',').replace(/[a-zA-Z]/gi, "");

Демо: http://jsfiddle.net/82r5v/13/

0 голосов
/ 30 марта 2012

Один из способов сделать это с помощью регулярных выражений - http://jsfiddle.net/holodoc/82r5v/14/

$(document).ready(function() {

    var arrValuesForOrder = ["2", "1", "3", "4"];
    var ul = $("#boxes"),
        items = $("#boxes li.con");

    for (var i = arrValuesForOrder[arrValuesForOrder.length - 1]; i >= 0; i--) {
        // arrValuesForOrder[i] element to move
        // i = index to move element at
        ul.prepend(items.get(arrValuesForOrder[i] - 1));
    }

$("#boxes").sortable({
    handle : '.drag',
    update: function() {
        var order = $("#boxes").sortable("toArray");
        var sorted = [];
        $.each(order, function(index, value){
           sorted.push(value.match(/box(\d+)/)[1]);                
        })
        alert(sorted);
    }
});

});
0 голосов
/ 30 марта 2012

Возможно использование регулярных выражений примерно так:

`alert(order.join(',').match(/\d/g));`

Чтобы вернуть массив в виде чисел.

(\d соответствует всем цифрам, g означает подстановочный знак глобального совпадения)

0 голосов
/ 30 марта 2012
// Remove all non-digits from the string
'box1'.replace(/\D/g, ''); // => '1'
// Same, but try to make the string a number
Number('box1'.replace(/\D/g, '')); // => 1
// Shorthand for making an object a number (+o is the same as Number(o))
+'box1'.replace(/\D/g, ''); // => 1
// parseInt(s) works if the number is at the beginning
parseInt('1box'); // => 1
// but not if it occurs later
parseInt('box1'); // => NaN
...