Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
737 views
in Technique[技术] by (71.8m points)

regex - Excluding some character from a range - javascript regular expression

To validate only word simplest regex would be (I think)

/^w+$/

I want to exclude digits and _ from this (as it accept aa10aaand aa_aa now, I want to reject them)

I think it can be gained by

 /^[a-zA-z]+$/

which means I have to take a different approach other than the previous one.

but what if I want to exclude any character from this range suppose I will not allow k,K,p,P or more.

Is there a way to add an excluding list in the range without changing the range.?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...