Regex to match only letters

后端 未结 20 1561
孤城傲影
孤城傲影 2020-11-22 16:24

How can I write a regex that matches only letters?

20条回答
  •  悲哀的现实
    2020-11-22 16:29

    So, I've been reading a lot of the answers, and most of them don't take exceptions into account, like letters with accents or diaeresis (á, à, ä, etc.).

    I made a function in typescript that should be pretty much extrapolable to any language that can use RegExp. This is my personal implementation for my use case in typescript. What I basically did is add ranges of letters with each kind of symbol that I wanted to add. I also converted the char to upper case before applying the RegExp, which saves me some work.

    function isLetter(char: string): boolean {
      return char.toUpperCase().match('[A-ZÀ-ÚÄ-Ü\s]+') !== null;
    }
    

    If you want to add another range of letters with another kind of accent, just add it to the regex. Same goes for special symbols.

    I implemented this function with TDD and I can confirm this works with, at least, the following cases:

        character | isLetter
        ${'A'}    | ${true}
        ${'e'}    | ${true}
        ${'Á'}    | ${true}
        ${'ü'}    | ${true}
        ${'ù'}    | ${true}
        ${'û'}    | ${true}
        ${'('}    | ${false}
        ${'^'}    | ${false}
        ${"'"}    | ${false}
        ${'`'}    | ${false}
    

提交回复
热议问题