Regex:排除字符组合并限制Regex/jQuery中的某些字符(部分工作)

Regex:排除字符组合并限制Regex/jQuery中的某些字符(部分工作),jquery,regex,regex-lookarounds,regex-group,Jquery,Regex,Regex Lookarounds,Regex Group,我试图在jQuery中使用Regex验证电子邮件输入-仅针对以下条件: 我希望允许的输入: 小写字母(多个) 数字(多个) 点/周期(多个) 破折号(多个) @标志(仅一个) 我要阻止的输入: 点/句点、破折号、字符串开头的@号 点/句点、破折号、字符串末尾的@号 一行两个点/句点或两条虚线 一行中的点/句点和破折号(或破折号和点/句点) 到目前为止,我提出了以下建议,但我在排除两个符号的组合以及将@符号限制为一个符号方面遇到了困难 有人能告诉我怎么做吗 注意: 我只想对上述标准和英文字

我试图在jQuery中使用Regex验证电子邮件输入-仅针对以下条件:

我希望允许的输入:

  • 小写字母(多个)
  • 数字(多个)
  • 点/周期(多个)
  • 破折号(多个)
  • @标志(仅一个)
我要阻止的输入:

  • 点/句点、破折号、字符串开头的@号
  • 点/句点、破折号、字符串末尾的@号
  • 一行两个点/句点或两条虚线
  • 一行中的点/句点和破折号(或破折号和点/句点)
到目前为止,我提出了以下建议,但我在排除两个符号的组合以及将@符号限制为一个符号方面遇到了困难

有人能告诉我怎么做吗

注意:
我只想对上述标准和英文字母(jQuery中涉及的所有其他内容)进行基本验证

我的正则表达式:

var val = $(this).val();
var checkEmail = /(?!^[@.-])(?!.*@@)(?!.*\.\.)(?!.*--)(?!.*[@.-]$)[0-9a-z@\.\-]/g;

if(val.match(checkEmail) {
   console.log('input valid');
   } else {
   console.log('input invalid');
}
非常感谢,

Tom

您可以使用下面的正则表达式来实现您的结果:

^(?!.+?(?:\.-|\.\.|--|-@|\.@|@\.).+?)[^.-@ ][a-z0-9_.-]+@[a-z0-9_.-]+(?<=[^.-@ ])$

有帮助吗?@Mandy8055:看起来不错-非常感谢!我现在就来测试。