Почему мое регулярное выражение для DOB не принимается? - PullRequest
0 голосов
/ 18 марта 2019

Я работаю над схемой и хочу установить следующие ограничения DOB в период с 01.01.1970 по 31.12.2000 включительно.

Мой код ниже:

xs:element name="DOB">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:pattern value="([0][1-9]|1[0-2])/(0[1-9]|[12][0-9]|3[01])/(199[0-9]|200[0-9]|201[01])"/>
        </xs:restriction>
    </xs:simpleType>
</xs:element>

Я получаю эту ошибку проверки:

ОШИБКА: Элемент 'DOB': [шаблон 'фасета'] Значение '2/3/1981' не принято шаблоном '([0] [1-9] | 1 [0-2]) / (0 [1-9] | [12] [0-9] | 3 [01]) /. (199 [0-9] | 200 [0-9] | 201 [01])»

1 Ответ

3 голосов
/ 18 марта 2019

Попробуйте сделать необязательной первую цифру дня и месяца, если этот день или месяц будут 1-9:

<xs:pattern value="(0?[1-9]|1[0-2])/(0?[1-9]|[12][0-9]|3[01])/(19[7-9][0-9]|2000)"/>

Демо

Помимо этого, у вашей схемы ловли лет также была проблема.Я использую следующую схему для сопоставления всех лет с 01.01.1970 по 31.12.2000:

(19[7-9][0-9]|2000)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...