In Javascript, I need to allow alphabets of all (or preferrably accented characters and chinese) languages, hyphen and underscore.
I need to disallow special characters and numerals.
I looked at many answers but couldn't find anything that matches my needs.
Allowed patterns:
ab_c
åb-ç
的å
Disallowed patterns
å!_
å123
!_!
Please share with me if you have a snippet.. I am on a deadline and freaking out :(
Edit: The following regex matches all non-English characters. If I can alphabets and hypehn and underscore, it would be complete
/[^\u0000-\u007F]/.test("ji");
I got this snippet from this link: https://stackoverflow.com/a/46413244
I added alphabtes, -, _ like below but it fails. Can anyone help?
/[^a-z\_\-\u0000-\u007F]/.test("ji");
CodePudding user response:
Well, the regex you gave at the end of the answer incorrectly excludes _ and -. The same thing that allows _ and - is /[^a-z\u0000-\u007F]|[_-]/
Edit: But what you really want is: /[^\u0000-\u007F]|[a-zA-Z-_]/
Or manually exclude all the special characters you want to: /[^(0-9!?@#$%^&*() \\=[\]{};':"|,.<>/]/