正则表达式,用于验证长度但不是电子邮件的单词

时间:2016-12-24 16:41:39

标签: regex validation

我需要一个正则表达式来验证一个大文本(最多2000个字符),它应该按如下方式工作:

说n = 20

  1. 如果文字中有任何字母大于n,则不会验证整个文字。
  2. 如果文中有电子邮件说emailaddress@emailserver.com,那么应该忽略它。
  3. 如果电子邮件地址类似于123456789012345678901@email.com(如本例中n> 20),则不会验证整个文本。
  4. 我现在正在使用^(?!.*\S{10}).*$,但它不会验证电子邮件。

    我绞尽脑汁待了十分钟没有运气,我认为这一定是我尚未学习的语法。

    非常感谢所有建议,非常感谢!

1 个答案:

答案 0 :(得分:1)

我会使用以下模式:

\b[^\s@]{30,}\b
  • 此模式不允许单词超过30个字符
  • 它会将电子邮件地址处理为两个字(前一个字,@后一个字。

var n = 30;
// doubly escaped slashes and global search (g)
var regex = new RegExp('\\b[^\\s@]{' + n + ',}\\b', 'g');
var text = document.getElementById('text').innerHTML;

var match = text.match(regex);
if(match) {
  console.log("Document contains a value with over " + n + " characters.");
  console.log(match);
}
else {
  console.log("Document does not contain a value with over " + n + " characters.");
}
<div id="text">
  Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
  sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
  Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos
  et accusametjustoduodoloreseterebumstet@clita.kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla
  facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet,
</div>