【问题标题】:creating valid email address strings (only left of @sign needed)创建有效的电子邮件地址字符串(只需要 @sign 的左边)
【发布时间】:2016-07-07 07:58:56
【问题描述】:

我目前正在从事一个项目,我必须根据一些具有各种字符的通用字符串,在 javascript 中即时生成一些电子邮件地址。

假设我有几个组名:

var groupname1: "This is my first group";
var groupname2: "This.is.yet@another@!#¤%&/()     group";

我需要弄清楚要从名称中删除哪些字符,这样我才能使它们在电子邮件中有效

function removeWeirdCharsAndReturnEmailAddress(name){
  var emailValidString = [DO REGEX/OTHER MAGIC HERE];
  return emailValidString + '@domain.org';
}

【问题讨论】:

标签: javascript jquery regex validation email


【解决方案1】:

试试这个。它会根据您的问题考虑“@”左侧的内容,并去除非电子邮件正文字符。我使用的正则表达式并不完美。您可以根据自己的要求对其进行定制:

function removeWeirdCharsAndReturnEmailAddress(name){
    var indexOfAt = name.indexOf("@");
    var s = '';
    if (indexOfAt > -1)
      s = str.substring(0, indexOfAt);
    else
      s='do something in case no @ in string';

    var acceptedString = '';
    for (var i = 0, len = s.length; i < len; i++) {
        if (isValidEmailCharacter(s[i])) acceptedString += s[i];
    }

      return acceptedString + '@domain.org';
  }

  function isValidEmailCharacter(s){
     var re = /[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]/;
     return re.test(s);
  }

【讨论】:

  • 最好能参考一下isValidEmailCharacter() 中的正则表达式的来源。但我很确定 -|.@domain.org 这样的地址是无效的。
  • 我想出了 reg exp...它只接受带有 a 到 z A 到 Z 数字和一些允许的特殊字符的单个字符。如前所述,它需要一些工作。 Domain.Org 是 OP 在他的问题中使用的,显然只是为了演示
【解决方案2】:

您可以使用生成器库创建有效的电子邮件。

检查Chance.js

代码很简单:

chance.email({domain: 'example.com'})
=> 'giigjom@example.com'

【讨论】:

  • 该库似乎没有按照 OP 的要求执行(剥离或音译给定字符串并将其用于本地部分)。
  • 你说得对,但他说他正在从事一个生成电子邮件的项目。这个图书馆可以帮助他完成这项工作。
猜你喜欢
  • 1970-01-01
  • 2017-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-12
  • 1970-01-01
  • 2015-11-19
  • 1970-01-01
相关资源
最近更新 更多