Regex for allowing alphanumeric,-,_ and space

后端 未结 7 2249
北荒
北荒 2020-12-04 16:43

I am searching for a regular expression for allowing alphanumeric characters, -, _ or spaces in JavaScript/jQuery. I tried Googling but wasn\'t able to find that.

Ca

7条回答
  •  死守一世寂寞
    2020-12-04 17:15

    Character sets will help out a ton here. You want to create a matching set for the characters that you want to validate:

    • You can match alphanumeric with a \w, which is the same as [A-Za-z0-9_] in JavaScript (other languages can differ).
    • That leaves - and spaces, which can be combined into a matching set such as [\w\- ]. However, you may want to consider using \s instead of just the space character (\s also matches tabs, and other forms of whitespace)
      • Note that I'm escaping - as \- so that the regex engine doesn't confuse it with a character range like A-Z
    • Last up, you probably want to ensure that the entire string matches by anchoring the start and end via ^ and $

    The full regex you're probably looking for is:

    /^[\w\-\s]+$/
    

    (Note that the + indicates that there must be at least one character for it to match; use a * instead, if a zero-length string is also ok)

    Finally, http://www.regular-expressions.info/ is an awesome reference


    Bonus Points: This regex does not match non-ASCII alphas. Unfortunately, the regex engine in most browsers does not support named character sets, but there are some libraries to help with that.

    For languages/platforms that do support named character sets, you can use /^[\p{Letter}\d\_\-\s]+$/

提交回复
热议问题