Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于从输入中提取域的正则表达式_Javascript_Regex - Fatal编程技术网

Javascript 用于从输入中提取域的正则表达式

Javascript 用于从输入中提取域的正则表达式,javascript,regex,Javascript,Regex,我试图从输入中提取domain.com,该输入可以采用以下格式和结构: 1.x.x.domain.com 2.x.domain.com 一旦我收到用户的电子邮件,例如: user@x.x.domain.com 我可以删除电子邮件地址的第一部分: user@ 通过以下正则表达式: /^.+@/ 我希望能够通过在两种格式上使用正则表达式立即获取domain.com,并且在获取域之前不会多次操作输入。 我想也许可以从输入中计算点的数量,然后进行一些逻辑运算,但是对于这个小解决方案来说,它看起来太复杂了

我试图从输入中提取
domain.com
,该输入可以采用以下格式和结构: 1.
x.x.domain.com
2.
x.domain.com

一旦我收到用户的电子邮件,例如: user@x.x.domain.com 我可以删除电子邮件地址的第一部分:
user@
通过以下正则表达式:
/^.+@/

我希望能够通过在两种格式上使用正则表达式立即获取
domain.com
,并且在获取域之前不会多次操作输入。 我想也许可以从输入中计算点的数量,然后进行一些逻辑运算,但是对于这个小解决方案来说,它看起来太复杂了

谢谢

怎么样

(@).*

输出的第一组是@,第二组是domain.com

这是域名的正则表达式

"[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\.[a-zA-Z]{2,}$"
还应管理x.x.domain.co.uk

原始模式使用

"(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]"
祝你好运

正则表达式方式:
let str1=“x.domain.com”;
让str2=“x.sdfsdf.google.com”;
让str3=“www.subdomain.yahoo.com”;
设reg=/[^.]+\.[^.]+$/gi;
console.log(str1.match(reg));//domain.com
console.log(str2.match(reg));//谷歌网站

控制台日志(str3.match(reg))//yahoo.com
不带
RegExp
:将电子邮件地址拆分两次,从上次拆分的地址中进行切片并加入结果。加上两个
RegExp
ideas。你挑吧

const getDomain=address=>
地址.split(“@”)[1]。split(“.”)。slice(-2)。join(“.”);
const getDomainRE=地址=>
address.match(/\.\w+/g).slice(-2).join(“”).slice(1);
const getDomainRE2=地址=>
address.match(/(?:(@|\)\w+{2}$/)[0].slice(1);
console.log(getDomain(“user@x.x.domain.com"));
console.log(getDomain(“user@x.domain.com"));
console.log(getDomain(“user@abc.x.y.z.domain.com"));
console.log(getDomainRE(“user@x.x.domain.com"));
console.log(getDomainRE(“user@x.domain.com"));
console.log(getDomainRE(“user@abc.x.y.z.domain.com"));
console.log(getDomainRE2(“user@x.x.domain.com"));
console.log(getDomainRE2(“user@x.domain.com"));

console.log(getDomainRE2(“user@abc.x.y.z.domain.com")); < P>我知道你并没有特别要求它,但是你也可以考虑一个顶级域名(例如:代码> AU/CODE,<代码> .U/<代码>)。 如果需要,您可以通过以下方式实现:

函数getDomainFromEmail(域){
常量域表达式=/(\w+)(\。\w+)(\。(ad)阿音音(A124)阿音(A124)阿音(A124)阿音(ad)阿音(A124)阿音(A124)阿音(A124)阿音(A124)阿音(A音)阿音(阿音)阿音(阿音)阿音(阿音)阿音(阿音)阿音(阿音)阿音)阿音(阿音)阿音(阿音)阿音(阿音)阿音(阿音)阿音(阿音)阿音(阿音)阿音(阿音)阿音(阿音)阿音(阿音)阿音)阿音(阿音)阿音(阿音)阿音(阿音)阿音(阿音)阿音(阿音)阿音(阿音)阿音)阿音(阿音)阿音(阿音)阿音)阿音(阿音)阿音)阿音(阿音)阿音(阿音)阿音(阿音)阿音)阿音(阿音)阿音)阿凯撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒撒ga