在 form - name 字段中,我想对其进行验证
- 应该只允许字母字符
- 留出空间
- 允许某些特殊字符 -
_\/- 。 ’
我试过了,
ng-pattern="/^[a-z]+[_+\+/+-+.+’][a-z]*$/"
看起来我错过了什么,因为它不起作用!
最佳答案
让我们看看:
- 应该只允许字母字符 =>
[a-zA-Z]
- 允许空格 =>
[ ]
或\s
- 允许某些特殊字符 -
_\/- 。 ' '
=>[_\\\/.''-]
因此,结合所有这些,模式将如下所示:
ng-pattern="/^[a-zA-Z _\\\/.’'-]+$/"
这会匹配允许集中的 1 个或多个 (+
) 个字符。
要禁止前导/尾随空格,请使用
ng-pattern="/^[a-zA-Z_\\\/.’'-]+(?: +[A-Za-z_\\\/.’'-]+)*$/" ng-trim="false"
参见 regex demo
ng-trim="false"
将防止 trim 发送到正则表达式引擎的输入。新的正则表达式将匹配:
^
- 字符串的开始[a-zA-Z_\\\/.''-]+
- 1 个或多个字母或允许的除空格以外的符号(?: +[A-Za-z_\\\/.''-]+)*
- 零个或多个序列:+
- (or,\s+
) - 1个或多个空格(空格)[A-Za-z_\\\/.''-]+
- 见上文
$
- 字符串结尾。
关于javascript - ng-pattern 允许字母和某些特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40905425/