Javascript 匹配域后缀的正则表达式
我需要一些关于构造正则表达式的帮助 我有一个域名数组和一个TLD数组(相当长)。例如:Javascript 匹配域后缀的正则表达式,javascript,regex,domain-name,tld,Javascript,Regex,Domain Name,Tld,我需要一些关于构造正则表达式的帮助 我有一个域名数组和一个TLD数组(相当长)。例如: tlds = { '.com':{ 1 : '£4.00', 2 : '£7.50', 3 : '£11.00', 4 : '£14.50', 5 : '£18.00', }, '.org':{ 1 : '£5.00', 2 : '£10.00', 3 : '
tlds = {
'.com':{
1 : '£4.00',
2 : '£7.50',
3 : '£11.00',
4 : '£14.50',
5 : '£18.00',
},
'.org':{
1 : '£5.00',
2 : '£10.00',
3 : '£15.00',
4 : '£20.00',
5 : '£25.00',
},
'.net':{
1 : '£6.00',
2 : '£12.00',
3 : '£18.00',
4 : '£24.00',
5 : '£30.00',
},
'.co.uk':{
1 : '£7.00',
2 : '£14.00',
3 : '£21.00',
4 : '£28.00',
5 : '£35.00',
},
'.com.br':{
1 : '£9.00',
2 : '£16.00',
3 : '£22.00',
4 : '£28.00',
5 : '£34.00',
}
}
domainResults = {
0 : {
'domain' : 'anything.com',
'status' : 'available'
},
1 : {
'domain' : 'anything-weird.org',
'status' : 'available'
},
2 : {
'domain' : 'anything-amazing.co.uk',
'status' : 'available'
}
}
我想为每个域名分配正确的tld。
数组中的每个域名始终与其中一个TLD匹配
我认为解决方案应该将每个TLD作为正则表达式循环,直到它与我循环使用的域名匹配为止
我知道这会很棘手,因为我总是至少有26个tld,我想确保它们都不匹配,以防止错误显示定价(例如:以“.com.br”结尾的域名永远不应该是regex“.com”的结果,而只能是tld“.com.br”的结果。假设域字符串中没有子域部分
for(var index in domainResults){
var domain = domainResults[index].domain;
var tld = domain.substring(domain.indexOf("."));
// now tlds[tld] gives the corresponding tld object
console.log(tlds[tld]);
}
为什么不简单地检查域是否以TLD结尾?在我看来,这像是JSON数据,您可以通过正确使用它来轻松地完成这项工作。@melwil这里没有JSON。请参阅