1

我已经在正则表达式测试器上测试了我的正则表达式并且它有效,但我没有让它在我的代码上工作。

var mail = "chdelfosse@gmail.com";
var regExp = new RegExp("@(.*?)\.");
document.write(regExp.exec(mail)) ;

我得到这个结果:

@G,

我试图在点之前添加一个反斜杠,我得到了这个:

@gmail.,gmail

我还想删除“@”和“。” 从电子邮件中,所以我尝试使用“ (?:@) ”,但我没有让它工作(在正则表达式测试器上)。

这是我第一次尝试使用正则表达式,但我不明白。为什么有逗号?

4

3 回答 3

2

您可以使用此正则表达式来获取域名:

/@(.+)\./

现场演示

于 2012-11-16T01:04:16.053 回答
1

做一些不同的事情:

  1. 您需要对字符串中的反斜杠进行双重转义,以便 RegExp 构造函数仍保留一个反斜杠或切换到/regex here/语法。
  2. 如果您只需要括号中的子组,则需要引用该特定子组。

这是代码:

var mail = "chdelfosse@gmail.com";
console.log(mail.match(/@(.*?)\./)[1]);
于 2012-11-16T01:03:27.870 回答
1

比正则表达式更快:

var emailAddress = "my.email@gmail.com";
var array_email = emailAddress.split("@");​​
alert('Account: ' + array_email[0] +'; Domain: ' + array_email[1]);​​​​​​​​​​​​​​​​​​​​​​​​​​
于 2012-11-16T01:06:30.357 回答