正则表达式只适用于浏览器测试程序

时间:2012-11-16 00:54:10

标签: javascript regex

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

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

我得到了这个结果:

  

@g,

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

  

@的Gmail,Gmail的

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

这是我第一次尝试使用正则表达式,但我没有得到它。 为什么有逗号?

3 个答案:

答案 0 :(得分:2)

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

/@(.+)\./

Live DEMO

答案 1 :(得分:1)

要做的事情不同:

  1. 您需要双重转义字符串中的反斜杠,以便仍然为RegExp构造函数保留一个反斜杠或切换到/regex here/语法。
  2. 如果您只需要parens中的子组,则需要引用该特定子组。
  3. 以下是代码:

    var mail = "chdelfosse@gmail.com";
    console.log(mail.match(/@(.*?)\./)[1]);
    

答案 2 :(得分:1)

比正则表达式更快:

var emailAddress = "my.email@gmail.com";
var array_email = emailAddress.split("@");​​
alert('Account: ' + array_email[0] +'; Domain: ' + array_email[1]);​​​​​​​​​​​​​​​​​​​​​​​​​​