Is there any way to find which input character fails the regex pattern.
For ex: consider [A-Za-z\s.&] is only allowable but the user enter like "test/string" where '/' invalidates input. How to find who fails regex (our case '/')
Is there any way to find which input character fails the regex pattern.
For ex: consider [A-Za-z\s.&] is only allowable but the user enter like "test/string" where '/' invalidates input. How to find who fails regex (our case '/')
Just negate your character class and find out which character(s) match.
[^A-Za-z\s.&]
will match the / in test/string. So, altogether you get
if (/^[A-Za-z\s.&]+$/.test(subject)) {
// Successful match
} else {
result = subject.match(/[^A-Za-z\s.&]/g);
// result is an array that contains all the characters that failed the match
}
To find which characters fails, split it with /[A-Za-z\s.&]+/, you will get invalid characters list
"test/string".split(/[A-Za-z\s.&]+/).join('')
/
To check username is valid or not, you could just use ^ and $ anchors.
/^[A-Za-z\s.&]+$/