Регулярное выражение для 6-значного цифрового ввода. Каждые 6 цифр входных номеров должны быть разделены запятой
Мой пользовательский интерфейс запрашивает входные данные User_ID и Supplier_ID, и я хотел, чтобы проверка строки принимала входные данные для Supplier_ID, как показано ниже:
1st scenario: 123456
2nd scenario: 123456,098765
3rd scenario: 123456,098765,345678
Хотя он не должен принимать входные данные, такие как:
1st scenario: Any number less than 6 digits like 123
2nd scenario: Any number more than 6 digits 1234567
3rd scenario: Inputs with comma in the end or even at the beginning - 123456,098765,345678, or ,098765,345678
Я буду использовать входные данные для Supplier_ID по этому запросу ниже:
UPDATE ABC.Items
SET Crit_Limit = 'Y'
WHERE User_ID = 'userID'
AND Supplier_ID in (suppID)
Переменная suppID будет содержать входные данные из UI Supplier_ID, поэтому запрос будет выглядеть следующим образом:
UPDATE ABC.Items
SET Crit_Limit = 'Y'
WHERE User_ID = '007'
AND Supplier_ID in (123456,098765,345678)
В любом случае, поле Supplier_ID имеет длину 6 и должно быть числовым.
Заранее спасибо!
3 ответа
Этот шаблон соответствует вашим тестам и для любого количества групп из 6 цифр, разделенных запятой.
^\d{6}(,\d{6})*$
Создайте свое регулярное выражение в качестве поисковых групп и сначала проверьте наличие новой строки, затем 6 цифр, а затем ,
затем следуют 6-значные группы.
['123456',
'123456,098765',
'123456,098765,345678',
'123456,0987s65,345678',
'12345,098765,345678',
'123456/098765'
]
.forEach(function(line) {
if (line.toString().replace(/(^\d{6}(,\d{6})*)/gm, '').length < 1) {
console.log(line, "matches");
} else {
console.log(line, "does not match");
}
});