Regex проверяет строку с разделителями-запятыми - PullRequest
2 голосов
/ 12 января 2020

Я использую JavaScript, мне нужно принимать только строку или строку с разделителями-запятыми, если там больше строк.

Мой код выглядит следующим образом

const text = 'AB1234567';
const hasText = text.match(/^([A-Za-z]{2}[0-9]{7}(,\s)?)+$/);

Мой Код теста выглядит следующим образом:

// first test
const text = 'AB1234567'; // output: 'AB1234567'
const hasText = text.match(/^([A-Za-z]{2}[0-9]{7}(,\s)?)+$/); // is good.

// second test
const text = 'AB1234567, '; // output: 'AB1234567, '
const hasText = text.match(/^([A-Za-z]{2}[0-9]{7}(,\s)?)+$/); // is good, but I dont need this.

// third test
const text = 'AB1234567, AB1234568'; // output: 'AB1234567, AB1234568'
const hasText = text.match(/^([A-Za-z]{2}[0-9]{7}(,\s)?)+$/); // is good, I need this.

// fourth test
const text = 'AB1234567, AB1234568, '; // output: 'AB1234567, AB1234568, '
const hasText = text.match(/^([A-Za-z]{2}[0-9]{7}(,\s)?)+$/); // is good, but I dont need this.

Как принять только правильное значение?

Правильные значения - первый тест и третий тест

Ответы [ 2 ]

2 голосов
/ 12 января 2020

Ваше регулярное выражение будет принимать строки, заканчивающиеся запятой и пробелом, которые, очевидно, вам не нужны. Итак, давайте заставим регулярное выражение обеспечить, чтобы строка не заканчивалась таким образом:

text.match(/^([A-Za-z]{2}[0-9]{7},\s)*[A-Za-z]{2}[0-9]{7}$/);

0 голосов
/ 12 января 2020

Попробуйте приведенное ниже регулярное выражение, чтобы просто принять строки.

// first test
let text = 'AB1234567'; // output: 'AB1234567'
let regex = /[a-zA-Z0-9]+/g
let hasText = text.match(regex); // is good.
console.log(hasText);
// second test
 text = 'AB1234567, '; // output: 'AB1234567, '
 hasText = text.match(regex); // is good, but I dont need this.
console.log(hasText);
// third test
 text = 'AB1234567, AB1234568'; // output: 'AB1234567, AB1234568'
 hasText = text.match(regex); // is good, I need this.
console.log(hasText);
// fourth test
 text = 'AB1234567, AB1234568, '; // output: 'AB1234567, AB1234568, '
 hasText = text.match(regex); 
console.log(hasText);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...