正则表达式:如果第一个字符是 '%' 或字母数字然后

azmd108

在 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

jQuery-JavaScript正则表达式只允许数字和减号作为第一个字符

Google表格正则表达式提取每个单词的第一个字母

正则表达式匹配行以空格开头,第一个字符为非数字

要获得一组字符和一些整数后的第一个字母,正则表达式将是什么?

正则表达式:第一个字符字母,第二个数字

用正则表达式分割字符串会删除结果的第一个字母

如何匹配正则表达式中的第一个字符串,然后在正则表达式中运行另一个递归模式?

使用正则表达式查找出现的内容,然后仅删除匹配表达式中的第一个字符

正则表达式查找字符串中的第一个字母

红宝石/正则表达式获取每个单词的第一个字母

至少一个字符和一个数字的正则表达式

“至少8个字符长,包括至少一个字母和一个数字”的正则表达式

正则表达式以验证仅具有小写字母的字符串,第一个字符必须为字母

正则表达式删除所有非数字和如果等于零的第一个字符。

正则表达式-删除第一个字母后的所有内容

正则表达式:选择第一个字符,然后在标签之间停顿

正则表达式,可能在@之前的第一个字母

正则表达式只能包含字母数字字符和下划线,但第一个字符必须为字母(单个字符失败)

Bash正则表达式检查字符串的第一个字符是否为数字

每个第一个字符和任何大写字母的正则表达式

如果多个字符可以包含数字并且下划线最多为128,则正则表达式的第一个字符必须为字母

正则表达式的第一个和最后一个字符必须是数字

搜索正则表达式以禁用第一个字母前的任何“/”

如果此字母为小写,则 Javascript 正则表达式匹配点和空格/空格后的第一个字母

返回第一个字母和所有后续辅音的正则表达式

正则表达式匹配第一个字符一次,然后重复匹配直到结束

匹配数字或字符前的第一个字母 - 正则表达式

在遇到第一个字母时停止的正则表达式

正则表达式提取字符串的第一个和最后一个字母