在 nodejs 中,我必须遵循模式
(/^(>|<|>=|<=|!=|%)?[a-z0-9 ]+?(%)*$/i
仅匹配字母数字字符串,带有可选的后缀和前缀以及一些特殊字符。它的工作正常。
现在我只想在第一个字符是字母数字(不区分大小写)或 % 时才匹配最后一个 '%'。然后它可选地允许,否则它不应该匹配。
例子:
应该匹配:
>test
!=test
<test
>=test
<=test
%test
test
%test%
test%
不应该匹配的示例:
<test% <-- its now matching, which is not correct
<test< <-- its now **not** matching, which is correct
有任何想法吗?
您可以在^
喜欢之后添加负面前瞻
/^(?![^a-z\d%].*%$)(?:[><]=?|!=|%)?[a-z\d ]+%*$/i
^^^^^^^^^^^^^^^^^
请参阅正则表达式演示。详情:
^
- 字符串的开始(?![^a-z\d%].*%$)
- 如果有字母数字以外的字符或%
开头和%
结尾的字符,则匹配失败(?:[><]=?|!=|%)?
- 可选匹配<
, >
, <=
, >=
,!=
或%
[a-z\d ]+
- 一个或多个字母数字或空格字符%*
- 零个或多个%
字符$
- 字符串结束本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句