使用JavaScript和Regex从URL中提取1个特定数据

时间:2016-11-30 23:39:24

标签: javascript regex

我想从像这样的URL获取“test@gmail.com”(或URL中的任何电子邮件):

  • www.website.com/?email=test@gmail.com
  • www.website.com/?email=test@gmail.com&name=john
  • www.website.com/?name=john&email=test@gmail.com

我的问题是解决所有这三种情况都可能发生(所以没有其他数据,电子邮件之后的数据,或者电子邮件之前的数据

不幸的是,我没有正则表达式技能,但是能够将这两件事情放在一起:

/email=(.*)/
/email=(.*)\&/

如果电子邮件是唯一的数据,则第一个可用。 第二个就是在我的电子邮件之后有另一个数据的情况下工作。

但如上所述,无论上述三种类型中的哪一种都是如此,我都需要让它发挥作用。

你能帮帮我吗?

非常感谢!

顺便说一句,我需要它:

var msg = window.location.href.match(/email=(.*)/);

(我正在寻找超过2小时的答案,使用Google,使用Regex-Testers,查看Cheat Sheets并阅读许多StackOverFlow-Questions ......但我无法自行解决。)

2 个答案:

答案 0 :(得分:0)

试试这个正则表达式:https://regex101.com/r/gMyqDa/1 它匹配电子邮件模式,而不仅仅是email=

之后的任何字符

答案 1 :(得分:0)

如果您的案例很简单,那么只需排除&符号

77.020107984543