Angularjs 正则表达式
Angularjs regular expression
在我的 Angularjs 应用程序中,我需要使用以下条件的两种模式的正则表达式进行表单验证。
模式 1 :
输入框应该接受没有 space 的字母数字,它还应该允许用户在字符串中的任何地方使用像 ~!@#$-_
这样的字符,除了这些字符以外的其他字符应该被允许像 (%, &, ^ etc)
。它不应该让 leading/trailing 白色 space 也。
示例:
ab@4_w : valid
sd!tye123 : valid
sd%tye123 : Invalid
sd*tye123 : Invalid
$scope.pattern1 = [\w~!@#\$-]+
模式二:
应该只允许字母数字,没有 space,也没有其他字符,包括 (_)。它不应该让 leading/trailing 白色 space 也。
示例:
a4hgg5 : Valid
a4_6hy : Invalid
a@yb : invalid
$scope.pattern2 = [\w]+
$scope.pattern1
和$scope.pattern2
需要修改才能满足我上面的要求
尝试
^[\w~!@#$-]+$
说明
^
字符串开头
[\w~!@#$-]+
任意数量的字符,(注意需要像$
一样转义$
)
$
字符串结束
参见Action on Regex101。如果您希望空字符串有效,请为量词指定 *
而不是 +
。此外,当使用 \w
时,您不需要设置 i
标志,因为它已经涵盖了大小写字母。
It should not allow leading/trailing whitespace.
在这两种情况下,将 ng-trim="false"
属性添加到 input
元素。
The input box should accept alphanumeric with no space and it should also allow the user to use the characters like ~!@#$-_
any where in the string, except these characters non of the other characters should be allowed like (%
, &
, ^
etc).
你的模式是正确的,但是不建议转义不需要转义的字符,使用:
^[\w~!@#$-]+$
其中 \w
匹配 [a-zA-Z0-9_]
.
注意:如果将模式作为字符串传递,请不要添加 ^
和 $
锚点,而是加倍反斜杠:"[\w~!@#$-]+"
.
Should allow only alphanumeric with no space and no other characters including (_
).
更容易:^[a-zA-Z]+$
。关于锚点的评论与上述相同。
在我的 Angularjs 应用程序中,我需要使用以下条件的两种模式的正则表达式进行表单验证。
模式 1 :
输入框应该接受没有 space 的字母数字,它还应该允许用户在字符串中的任何地方使用像 ~!@#$-_
这样的字符,除了这些字符以外的其他字符应该被允许像 (%, &, ^ etc)
。它不应该让 leading/trailing 白色 space 也。
示例:
ab@4_w : valid
sd!tye123 : valid
sd%tye123 : Invalid
sd*tye123 : Invalid
$scope.pattern1 = [\w~!@#\$-]+
模式二: 应该只允许字母数字,没有 space,也没有其他字符,包括 (_)。它不应该让 leading/trailing 白色 space 也。
示例:
a4hgg5 : Valid
a4_6hy : Invalid
a@yb : invalid
$scope.pattern2 = [\w]+
$scope.pattern1
和$scope.pattern2
需要修改才能满足我上面的要求
尝试
^[\w~!@#$-]+$
说明
^
字符串开头[\w~!@#$-]+
任意数量的字符,(注意需要像$
一样转义$
)$
字符串结束
参见Action on Regex101。如果您希望空字符串有效,请为量词指定 *
而不是 +
。此外,当使用 \w
时,您不需要设置 i
标志,因为它已经涵盖了大小写字母。
It should not allow leading/trailing whitespace.
在这两种情况下,将 ng-trim="false"
属性添加到 input
元素。
The input box should accept alphanumeric with no space and it should also allow the user to use the characters like
~!@#$-_
any where in the string, except these characters non of the other characters should be allowed like (%
,&
,^
etc).
你的模式是正确的,但是不建议转义不需要转义的字符,使用:
^[\w~!@#$-]+$
其中 \w
匹配 [a-zA-Z0-9_]
.
注意:如果将模式作为字符串传递,请不要添加 ^
和 $
锚点,而是加倍反斜杠:"[\w~!@#$-]+"
.
Should allow only alphanumeric with no space and no other characters including (
_
).
更容易:^[a-zA-Z]+$
。关于锚点的评论与上述相同。