两个文本元素之间的正则表达式没有捕获这些元素?使用Javascript

时间:2015-05-19 18:33:49

标签: javascript regex

所以,我正在编写一个谷歌脚本,并且我一直在使用regex101工具对其进行故障排除,但我绝对没有运气。

这是我需要的正则表达式: JS中有没有办法隔离" randomstuff"来自" myemail+randomstuff@gmail.com"没有在返回的结果中包含+或@?

我已尝试使用我更有限的正则表达式技能来完成此操作,但最终结果始终包括' +'和' @'。

3 个答案:

答案 0 :(得分:1)

您可以将match function与已捕获的群组一起使用

matched = "myemail+randomstuff@gmail.com".match(/\+(.*?)@/);
matched[1]
// Outputs
// randomstuff
  • \+匹配+

  • (.*?)匹配第1组中捕获的任何内容

  • @匹配@

  • matched[1] match将返回包含匹配结果的数组。数组的竞争对象将是正则表达式匹配中捕获的组(由捕获组编号索引。这里组是一个,因此我们使用matched[1])和整个匹配(索引为0)< / p>

答案 1 :(得分:0)

我使用了这个正则表达式http://regexr.com/3b1fa

这是一个小提琴:http://jsfiddle.net/rt4h215g/

/\w+(?=@)/g

(?=@)使用正面向前检查并查看@符号何时出现而不包括在匹配中。由于 + 不被视为单词字符,因此您只需使用/ w +来获取 @ 符号之前和 + 之后的字符。

答案 2 :(得分:0)

var originalString = "myemail+randomstuff@gmail.com";
/\+([^@]+)@/.exec(originalString )[1];

这将返回

  

&#34; randomstuff&#34;