To validate only word simplest regex would be (I think)
/^\\w+$/
I want to exclude digits and _
from this (as it accept
To exclude k
or p
from [a-zA-Z]
you need to use a negative lookahead assertion.
(?![kpKP])[a-zA-Z]+
Use anchors if necessary.
^(?:(?![kpKP])[a-zA-Z])+$
It checks for not of k
or p
before matching each character.
OR
^(?!.*[kpKP])[a-zA-Z]+$
It just excludes the lines which contains k
or p
and matches only those lines which contains only alphabets other than k
or p
.
DEMO
^(?!.*(?:p|k))[a-zA-Z]+$
This should do it.See demo.The negative lookahead will assert that matching word has no p
or k
.Use i
modifier as well.
https://regex101.com/r/vD5iH9/31
var re = /^(?!.*(?:p|k))[a-zA-Z]+$/gmi;
var str = 'One\nTwo\n\nFour\nFourp\nFourk';
var m;
while ((m = re.exec(str)) != null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
// eg m[0] etc.
}