RegEx для Javascript в строгой алфавитно-цифровой с дополнительным пробелом - PullRequest
0 голосов
/ 28 июня 2019

Мне нужно найти регистр ex, который позволяет только буквенно-цифровой.Он должен принимать только буквенно-цифровые символы.Я пытаюсь ниже регулярного выражения и его прохождения все случаи, кроме необязательного пробела.

dGgs1s23 - valid

12fUgdf  - valid,

123 abc  - Invalid,

121232   - invalid,

abchfe   - invalid,

 abd()*  - invalid, 

42232^5$ - invalid

Регулярное выражение обрабатывает все случаи, кроме "abc 123", где между ними есть пробел.

^(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]+$

Может ли кто-нибудь предложить модификацию вышеприведенного регулярного выражения?

Важно: Необязательный пробел должен быть разрешен вместе со строгим буквенно-цифровым вводом.

1 Ответ

0 голосов
/ 28 июня 2019

Я предполагаю, что, возможно, это выражение подтвердит наши желаемые данные:

^(?=.*[a-z].*)(?=.*[0-9].*)([a-z0-9]+|[a-z]+\s[0-9]+)$

Демо

TEST

const regex = /^(?=.*[a-z].*)(?=.*[0-9].*)([a-z0-9]+|[a-z]+\s[0-9]+)$/gmi;
const str = `dGgs1s23
12fUgdf
abcd1
1abcd
abc 123

abc  123
123 abc
121232
abchfe
abd()*
42232^5\$`;
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}`);
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...