我知道这是一个非常简单的问题,但我开始学习reg-ex,所以请提供解决方案..
输入
abc @ gm,ail.com,xyz @ nauk,ri.com,srs @ y,ahoo.com,efgh @ hot,mail.com
所需的输出
abc@gmail.com,xyz @ naukri.com,srs @ yahoo.com,efgh @ hotmail.com
我想在这个问题中添加一个部分,我不知道是否可能,如果是,那么请告诉我..
输入
“joan,lee @gma,il.com,mohd,saeed @ nau,kri.com,xX,yz @ yaho,o.com”
期望的输出
提前thnx ..joanlee@gmail.com,mohdsaeed @ naukri.com,xXyz @ yahoo.com“
答案 0 :(得分:1)
您可以使用:
email = email.replace(/@([^.]+)\./g, function(text, p1) {
return text.replace(/,+/g, '');
});
答案 1 :(得分:1)
其中一个例子:
'abc@gm,ail.com, xyz@nauk,ri.com, srs@y,ahoo.com, efgh@hot,mail.com'.replace(/(@[^\s,]+),([^\s\.].)/g, '$1$2')
二:
'abc@gm,ail.com, xyz@nauk,ri.com, srs@y,ahoo.com, efgh@hot,mail.com'.replace(/,([^\s])/g, '$1')
答案 2 :(得分:1)
试试这个:
input = input.replace(/(@.*?),/g, '$1');
这个必须更可靠:
input = input.replace(/,(?! )/g, '');
答案 3 :(得分:0)
谢谢你们的合作我成功实现了我想要的东西。以下是解释
var str = ",;ab'c@gm;ail.com,xyz@nauk'ri.com,srs@y;ahoo.co'm,efgh@hot;mail.com;"
str.replace(/,/g,', ').replace(/[';]/g,',').replace(/,(?! )/g,'').replace(/^,|,$/g,'').trim()
Step1:用(逗号+空格)替换所有逗号(,)
str.replace(/,/g,', ')
输出:", ;ab'c@gm;ail.com, xyz@nauk'ri.com, srs@y;ahoo.co'm,
efgh@hot;mail.com;"
第2步:用逗号替换所有分号(;)和单引号(')
str.replace(/,/g,', ').replace(/[';]/g,',')
输出:", ,ab,c@gm,ail.com, xyz@nauk,ri.com, srs@y,ahoo.co,m, efgh@hot,mail.com,"
Step3:删除所有不带后缀空格的逗号(除了那些带有空格的逗号)
str.replace(/,/g,', ').replace(/[';]/g,',').replace(/,(?! )/g, '')
输出:", abc@gmail.com, xyz@naukri.com, srs@yahoo.com, efgh@hotmail.com"
第4步:从开头和结尾删除逗号。
str.replace(/,/g,', ').replace(/[';]/g,',').replace(/,(?! )/g, '').replace(/^,|,$/g,'')
输出:" abc@gmail.com, xyz@naukri.com, srs@yahoo.com, efgh@hotmail.com"
第5步:从开头和结尾删除空格
str.replace(/,/g,', ').replace(/[';]/g,',').replace(/,(?! )/g, '').replace(/^,|,$/g,'').trim()
输出:abc@gmail.com, xyz@naukri.com, srs@yahoo.com, efgh@hotmail.com
答案 4 :(得分:0)
根据您自己的回答:
var s = ",;ab'c@gm;ail.com,xyz@nauk'ri.com,srs@y;ahoo.co'm,efgh@hot;mail.com;";
第1步 - 清理:
s = s.replace(/^[ ,;']+|[ ;']+|[ ,;']+$/g, '');
// "abc@gmail.com,xyz@naukri.com,srs@yahoo.com,efgh@hotmail.com"
第2步 - 化妆:
s = s.replace(/,/g, ', ');
// "abc@gmail.com, xyz@naukri.com, srs@yahoo.com, efgh@hotmail.com"
答案 5 :(得分:-2)
如果您有var email = 'bob@gm,ail.com'
使用:
var emailReplace = email.replace(/\,/g,'');
其中emailReplace现在将是bob@gmail.com
更新
var emails = 'bob@g,mail.com, bob@ya,ooo.co.uk, bob@hot,mail.ca';
function fixCommas() {
var fixedEmails = emails.replace(/,(?! )/g, '');
return fixedEmails;
}
fixCommas(emails);