2017-01-10 11 views
0

Я использую Угловой 1,5 формы строитель, и я хочу, чтобы добавить validation к моим в моем json файле:Угловая модель проверки 1 формы-строителя на сегодняшний день

{ 
    "description": "managersList_birth_date", 
    "model": "birth_date", 
    "type": "input-date", 
    "name": "Bday", 
    "maxDate": "today", 
    "class": { 
     "main_part_class": "col-xs-12 col-sm-6 col-md-6", 
     "label_part_class": "", 
     "control_part_class": "" 
    }, 
    "validation": { 
     "required": true, 
     "pattern": "/^(\d{2})\/(\d{2})\/(\d{4})$/" //error in json 

    } 
} 

1.There ошибка в моем файле JSon - Invalid escape character in string.

2.Это регулярное выражение будет работать в form builder? в случае, если ошибка будет решена.

ответ

1

Validate Дата (день: 1-31/Месяц: 1-12/Год выпуска: 1000 - 2999)

JavaScript:

const regex = /(^3[01]|^2[\d]{1})\/([0][0-9]|[1][012])\/([12]\d{3})/gm; 
const str = ` 
22/09/1994 <-- GOOD 
32/13/2000 <-- BAD 
31/12/2004 <-- GOOD`; 
let m; 

while ((m = regex.exec(str)) !== null) { 
    // This is necessary to avoid infinite loops with zero-width matches 
    if (m.index === regex.lastIndex) { 
     regex.lastIndex++; 
    } 

    // The result can be accessed through the `m`-variable. 
    m.forEach((match, groupIndex) => { 
     console.log(`Found match, group ${groupIndex}: ${match}`); 
    }); 
} 

PHP:

$re = '/(^3[01]|^2[\d]{1})\/([0][0-9]|[1][012])\/([12]\d{3})/m'; 
$str = '22/09/1994 <-- GOOD 
32/13/2000 <-- BAD 
31/12/2004 <-- GOOD'; 

preg_match_all($re, $str, $matches); 

// Print the entire match result 
print_r($matches); 

REGEXP: (3 группы с день/месяц/год)

(^3[01]|^2[\d]{1})\/([0][0-9]|[1][012])\/([12]\d{3}) 

Результат:

Full match 39-49 `31/12/2004` 
Group 1. 39-41 `31` 
Group 2. 42-44 `12` 
Group 3. 45-49 `2004` 

Хорошо/Плохо:

22/09/1994 <-- GOOD 
32/13/2000 <-- BAD 
31/12/2004 <-- GOOD 

Попробуйте здесь:https://regex101.com/r/WpgU9W/2

+0

Не совсем то, о чем я просил. –

0

Так что я просто пропустил проверку форм-строитель (Она имеет много проблем) и использовать ng-pattern:

ng-pattern='/^(0?[1-9]|[12][0-9]|3[01])\/(0?[1-9]|1[012])\/(19\d\d|20[12]\d)$/' 

Спасибо.