我想写一个正则表达式(Java脚本)来匹配,如果给定的文本不只包含一个邮箱字符串.

对于EX:

  • ABC->应匹配
  • ABS@gmail.com sss-&>应匹配
  • abs@gmail.comsss -应该匹配
  • AAA abs@gmail.com->应匹配
  • abc@gmail.com -> should not match

我使用(?<!…)编写了一个正则表达式)否定查找,判断给定的文本是否只包含邮箱字符串,如下所示.但我不能使用+内部后视表达式,它给出了A quantifier inside a lookbehind makes it non-fixed width个错误.

正则表达式:

^.+(?<!([a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.com))$

说明:

  • ([a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.com)-regex以判断邮箱地址.
  • ^.+(?<!([a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.com))$个 - regex to check look behind of all non empty texts (.+)

请给我一个解决这个问题的 idea .

谢谢

推荐答案

一种方法是将邮箱地址的模式包含在带有锚点的否定先行断言中:

^(?![a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.com$)

演示:https://regex101.com/r/gutJB8/1

请注意,问题中的aaaabs@gmail.com个示例不应该匹配,即使您声称应该匹配.

Javascript相关问答推荐

获取表格的左滚动位置

如何在不分配整个数组的情况下修改包含数组的行为主体?

使用JavaScript在ionic Web应用程序中更新.pane和.view的背景 colored颜色

如何找出摆线表面上y与x相交的地方?

如何在angular中从JSON值添加动态路由保护?

给定一个凸多边形作为一组边,如何根据到最近边的距离填充里面的区域

简单的PayPal按钮集成导致404错误

使用Promise.All并发解决时,每个promise 的线性时间增加?

保持物品顺序的可变大小物品分配到平衡组的算法

Angular 中的类型错误上不存在获取属性

无法读取未定义的属性(正在读取合并)-react RTK

在查看网页时,如何使HTML中的按钮工作方式类似于鼠标上的滚轮或箭头键?

Jexl to LowerCase()和Replace()

顶点图使用组标签更新列之间的条宽

P5.js中矩形内的圆弧

如何压缩图像并将其编码为文本?

使用Perl Selify::Remote::Driver执行Java脚本时出错

Reaction路由v6.4+数据API:重试加载程序而不显示错误

ReactJS Sweep Line:优化SciChartJS性能,重用wasmContext进行多图表渲染

单击子按钮时将活动切换类添加到父分区