admin管理员组

文章数量:1297112

In form - name field I want to do a validation against

  • Should allow only Alpha characters
  • Allow space
  • Allow certain special characters - _ \ / - . ’

I tried,

 ng-pattern="/^[a-z]+[_+\+/+-+.+’][a-z]*$/"

Looks like I have missed out something as its not working!

In form - name field I want to do a validation against

  • Should allow only Alpha characters
  • Allow space
  • Allow certain special characters - _ \ / - . ’

I tried,

 ng-pattern="/^[a-z]+[_+\+/+-+.+’][a-z]*$/"

Looks like I have missed out something as its not working!

Share Improve this question edited Dec 1, 2016 at 8:35 Tushar 87.2k21 gold badges163 silver badges181 bronze badges asked Dec 1, 2016 at 8:03 mondamonda 3,91516 gold badges61 silver badges85 bronze badges 0
Add a ment  | 

2 Answers 2

Reset to default 6

Let's see:

  • Should allow only Alpha characters => [a-zA-Z]
  • Allow space => [ ] or \s
  • Allow certain special characters - _ \ / - . ’ ' => [_\\\/.’'-]

So, bining all that, the pattern will look like:

ng-pattern="/^[a-zA-Z _\\\/.’'-]+$/"

This matches 1 or more (+) chars from the allowed set.

To disallow leading/trailing whitespace, use

ng-pattern="/^[a-zA-Z_\\\/.’'-]+(?: +[A-Za-z_\\\/.’'-]+)*$/" ng-trim="false"

See the regex demo

The ng-trim="false" will prevent from trimming the input sent to the regex engine. The new regex will match:

  • ^ - start of string
  • [a-zA-Z_\\\/.’'-]+ - 1 or more letters or allowed symbols other than space
  • (?: +[A-Za-z_\\\/.’'-]+)* - zero or more sequences of:
    • + - (or, \s+) - 1 or more spaces (whitespaces)
    • [A-Za-z_\\\/.’'-]+ - see above
  • $ - end of string.

/^([a-z _\/.'-])+$/i would do. If you want any space character instead of just space, use /(^[a-z_\/.'-]|\s)+$/i.

本文标签: javascriptngpattern to allow alpha and certain special charactersStack Overflow