jquery сортируется с помощью регулярных выражений - PullRequest
3 голосов
/ 28 мая 2010

Я пытаюсь найти правильное регулярное выражение для соответствия идентификаторам элементов списка.

Например:

<ul id="MyList" class="connectedSortable">
    <li id="id=1-32">Item 1</li>
    <li id="id=2_23">Item 2</li>
    <li id="id=3">Item 3</li>
    <li id="id=4">Item 4</li>
    <li id="id=5">Item 5</li>
    <li id="id=6">Item 6</li>
</ul>

В методе сериализации я хочу, чтобы он вытягивал все после знака равенства (=). Например, для первого элемента мне нужно, чтобы идентификатор был 1-32, для второго - 2_23.

    $(function () {
        $("#MyList, #OtherList").sortable({
            connectWith: '.connectedSortable',
            update: function () {
                $("#MyListOrder").val($("#MyList").sortable('serialize', { regexp: '/(.+)[=](.+)/)' }));
            }
        }).disableSelection();
    });

Я попробовал вышеописанное, но это не совсем сработало. Мое выражение регулярного выражения неверно, и я не знаю, каким оно должно быть. Идеи?

UDPATE: Вместо использования метода сериализации я решил использовать toArray. Таким образом, я получаю полный идентификатор и могу извлечь часть, которая мне не нужна, на стороне сервера.

1 Ответ

4 голосов
/ 28 мая 2010

Согласно спецификациям, опция должна называться «expression», и вам не нужно /.../ в строке, если вы не передаете регулярное выражение. Это работает:

.sortable('serialize', { expression: '(.+)=(.+)' })

или

.sortable('serialize', { expression: /(.+)=(.+)/ })

Рабочий пример: http://jsbin.com/oqejo3/2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...