正则表达式忽略电子邮件中的某些字符

时间:2018-06-07 01:13:58

标签: regex email portia

我需要您的帮助,使用正则表达式提取正确的电子邮件。 这是一个原始的HTML:

  </a>
  <script>
      var XutJPVbvZ = 'sales@some##thing.com';
      var XutJPVbvZ = XutJPVbvZ.split('#');
      document.getElementById('XutJPVbvZ').innerHTML = 
           XutJPVbvZ[0]+XutJPVbvZ[2]+XutJPVbvZ[1]; 
      document.getElementById('XutJPVbvZ').href = 
           'mailto:'+XutJPVbvZ[0]+XutJPVbvZ[2]+XutJPVbvZ[1];
  </script>
</div>

我使用此表达式匹配电子邮件:

[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+[a-zA-Z]+[a-zA-Z0-9-_.]+

我得到的是:sales@some##thing.com

如何让正则表达式在此电子邮件地址中间没有两个特殊字符的情况下返回电子邮件?

由于

1 个答案:

答案 0 :(得分:0)

我没有完全得到您的问题,但无论如何都可以回答:使用正则表达式替换捕获组,如下面的Javascript代码所示:

const regex = /([a-zA-Z0-9-_.]+)@([a-zA-Z0-9-_.]+)\#\#([a-zA-Z]+)([a-zA-Z0-9-_.]+)/gm;
const str = `sales@some##thing.com`;
const subst = `$1@$2$3$4`;

// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);

console.log('Substitution result: ', result);