javascript:如何使用正则表达式删除两个特殊字符之间的逗号(,)

时间:2013-12-01 16:52:53

标签: javascript regex

我知道这是一个非常简单的问题,但我开始学习reg-ex,所以请提供解决方案..

我想删除用户提供的电子邮件ID中@和。(点)之间的逗号。

输入

  

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”

期望的输出

  

joanlee@gmail.com,mohdsaeed @ naukri.com,xXyz @ yahoo.com“

提前thnx ..

6 个答案:

答案 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);