шаблон регулярного выражения для ввода серийного номера - PullRequest
0 голосов
/ 26 апреля 2019

Кто-то может помочь мне, пожалуйста. У меня есть ввод серийного номера, и мне нужно выражение regex для проверки этого ввода [ex: 11-22-33333] число символов max = 11, я добавил этот шаблон, но он не работа

"pattern": "^[0-9]{2}*-?[0-9]{2}*-?[0-9]{5}$",

Ответы [ 3 ]

0 голосов
/ 26 апреля 2019
"purchase-1_serialNumber": {
  "extra_form_type": "text",
  "options": {
    "label": "Indiquez le n° de série:*",
    "pattern": "^[0-9]{2}*-?[0-9]{2}*-?[0-9]{5}$",
    "required": 1,
    "disabled": "0",
    "read_only": "0",
    "attr": {
      "title": "Ce numéro est composé de 9 chiffres séparés par 2 tirets (ex: 11-22-33333) que vous trouverez sur votre produit",
      "class": "input_serie",
      "placeholder": "N° de série*",
      "minlength": 11,
      "maxlength": 11
    },
    "label_attr": {
      "class": "label_serie"
    },
    "mapped": 1
  },
  "constraints": [
    {
      "extra_form_constraint": "not_blank",
      "options": {
        "message": "Merci de renseigner le n° de série."
      }
    },
    {
      "extra_form_constraint": "regex",
      "options": {
        "pattern": "^[0-9]{2}*-?[0-9]{2}*-?[0-9]{5}$",
        "match": true,
        "message": "Merci de renseigner correctement le N° de série."
      }
    }
  ]
}
0 голосов
/ 26 апреля 2019

Учитывая, что у вас есть это: -? в вашем исходном паттерне, я предполагаю, что вам может потребоваться, чтобы число имело либо обе трассы, либо ни одной, поэтому я предлагаю заданное регулярное выражение:

^((\d\d-){2}|(\d\d){2})\d{5}$

Демо:

const regex = /^((\d\d-){2}|(\d\d){2})\d{5}$/;

const testStrings = [
  '11-22-12345',
  '112212345',
  '1122-12345',
  '11-2212345',
  '1-12-12345',
  '12-12-123456'
];

testStrings.forEach(s => console.log(`${s} - ${regex.test(s)}`));
0 голосов
/ 26 апреля 2019

Поскольку вы не указали разновидность регулярного выражения (java? Bash? Sed? Python? Php?), Я напишу здесь наиболее совместимое выражение:

"^[0-9]{2}-[0-9]{2}-[0-9]{5}$"

https://regex101.com/r/2xGgL1/1/

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

...