正则表达式匹配if。 / - 里面的字符,但彼此只有1个

时间:2017-02-22 14:58:30

标签: javascript regex pattern-matching

我需要创建正则表达式规则以匹配字符串与不包含. / -字符的字符串以及多次使用它们但不在其附近的字符串。

好的字符串(应该匹配):

aaa/aa/aa
a/a.a
c.a
aaa-zz.z-ee/aa.z

错误的字符串(不应该匹配):

aaa/aa/
z.zz//aa
zz..aa
fff//aa-a
zzzzz/
.
/
-
-aa
/aaa.
aasa....a

尝试并创建了像^[^\.\/\-\n]*(?:[\.\/\-])(?![\.\/\-])[^\.\/\-\n]*$这样的某些东西,但它也找到了.aaa

1 个答案:

答案 0 :(得分:3)

您可以使用

/^(?!.*[./-]{2,})(?![./-])(?!.*[./-]$).*$/
  • (?!.*[./-]{2,})预测要检查没有两个连续的邪恶角色
  • (?![./-])前瞻检查开始旁边是否有邪恶的字符
  • (?!.*[./-]$)前瞻检查结尾旁边是否有邪恶角色
  • .*$匹配整个字符串(不一定需要),如果不允许空字符串,则更改为.+

https://regex101.com/r/xSTxiB/1