Excluding some character from a range - javascript regular expression

前端 未结 2 1194
萌比男神i
萌比男神i 2020-11-30 10:12

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

/^\\w+$/

I want to exclude digits and _ from this (as it accept

相关标签:
2条回答
  • 2020-11-30 10:54

    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

    0 讨论(0)
  • 2020-11-30 11:04
    ^(?!.*(?: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.
    }
    
    0 讨论(0)
提交回复
热议问题