Табулятор JS Validator Regex - PullRequest
0 голосов
/ 04 октября 2018

Tabulator JS с колбой питона.

columns:[
{title:"Number", field:"msisdn", align:"center", editable:true,  editor:"input", validator:["required","numeric","min:11","max:11","regex:\\77[0-9]+"]},

],

Я хочу проверить ячейку, когда включен режим редактирования ячейки.Ограниченные числа в формате 77XXXXXXXXX, но это совпадение с регулярным выражением не работает, я использую аналоговое сопоставление в функции jquery, отлично работает.

Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Я исправляю свою проблему.Добавление пользовательского форматера:

var numEditor = function(cell, onRendered, success, cancel, editorParams){
    var editor = document.createElement("input");
    editor.setAttribute("type", "text");
    var r = /^77[0-9]{9}$/
    onRendered(function(){
             editor.focus();
             editor.style.css = "100%";
    });
    function successFunc(){
        var n = editor.value.match(r);
                if (n !== null) {
                    success(editor.value);
                }
                else {
                   cancel();
                }
    }
    editor.addEventListener("change", successFunc);
    editor.addEventListener("blur", successFunc);
    return editor;
};

и в табуляторе:

{title:"", field:"msisdn", align:"center", editable:true, editor:numEditor},

и получайте удовольствие))

Спасибо Оли, ваш табулятор JSэто огонь!

0 голосов
/ 06 октября 2018

Ваше выражение регулярного выражения там выглядит неправильно, оно должно быть 77[0-9]{9}

, поэтому определение столбца должно выглядеть следующим образом:

{title:"Number", field:"msisdn", align:"center", editable:true,  editor:"input", validator:["required","numeric","min:11","max:11","regex:77[0-9]{9}"]},

Надеюсь, это поможет,

Приветствия

Оли:)

...