需要在javascript中替换长字符串中的字符串

需要在javascript中替换长字符串中的字符串,javascript,regex,replace,replaceall,Javascript,Regex,Replace,Replaceall,我有一根长长的绳子 Full_str1 = 'ab@xyz.com;cab@xyz.com;c-ab@xyz.com;c.ab@xyz.com;c_ab@xyz.com;'; removable_str2 = 'ab@xyz.com;'; 我需要一个替换的字符串,它将 最终生成的字符串应该如下所示: cab@xyz.com;c-ab@xyz.com;c.ab@xyz.com;c_ab@xyz.com; 我试过了 str3 = Full_str1.replace(new RegExp('(^|

我有一根长长的绳子

Full_str1 = 'ab@xyz.com;cab@xyz.com;c-ab@xyz.com;c.ab@xyz.com;c_ab@xyz.com;';
removable_str2 = 'ab@xyz.com;';
我需要一个替换的字符串,它将 最终生成的字符串应该如下所示:

cab@xyz.com;c-ab@xyz.com;c.ab@xyz.com;c_ab@xyz.com;
我试过了

str3 = Full_str1.replace(new RegExp('(^|\\b)' +removable_str2, 'g'),"");
但结果是

cab@xyz.com;c-c.c_ab@xyz.com;

这里是一个针对每种情况使用两个单独正则表达式的解决方案:

要删除的str位于字符串的开头 要删除的str位于字符串内部或末尾 附言: 我不能在一个正则表达式中执行它,因为它会删除一个额外的正则表达式;在匹配字符串以删除全局字符串内部的情况下

const originalStr=ab@xyz.com;cab@xyz.com;c-ab@xyz.com;Cab@xyz.com;ab@xyz.com;c_ab@xyz.com;'; 康斯特托雷夫酒店ab@xyz.com;'; const epuredStr=originalStr .replacenew RegExp`^${toRemove}`,'g', .replacenew RegExp`${toRemove}`、'g'、';';
console.logepuredStr 这里是一个针对每种情况使用两个单独正则表达式的解决方案:

要删除的str位于字符串的开头 要删除的str位于字符串内部或末尾 附言: 我不能在一个正则表达式中执行它,因为它会删除一个额外的正则表达式;在匹配字符串以删除全局字符串内部的情况下

const originalStr=ab@xyz.com;cab@xyz.com;c-ab@xyz.com;Cab@xyz.com;ab@xyz.com;c_ab@xyz.com;'; 康斯特托雷夫酒店ab@xyz.com;'; const epuredStr=originalStr .replacenew RegExp`^${toRemove}`,'g', .replacenew RegExp`${toRemove}`、'g'、';';
console.logepuredStr 我找不到任何特别的描述为什么你没有这样做,它会给你想要的结果cab@xyz.com;c-ab@xyz.com;Cab@xyz.com;c_ab@xyz.com; const full_str1='1!'ab@xyz.com;cab@xyz.com;c-ab@xyz.com;Cab@xyz.com;c_ab@xyz.com;'; 可拆卸常数ab@xyz.com;'; const result=full_str1.replaceremovable_str2;
console.logresult 我找不到任何特别的描述为什么你没有这样做,它会给你想要的结果cab@xyz.com;c-ab@xyz.com;Cab@xyz.com;c_ab@xyz.com; const full_str1='1!'ab@xyz.com;cab@xyz.com;c-ab@xyz.com;Cab@xyz.com;c_ab@xyz.com;'; 可拆卸常数ab@xyz.com;'; const result=full_str1.replaceremovable_str2;
console.logresult 首先,动态部分必须是,否则。将匹配除换行符以外的任何字符,并且将匹配ab@xyz§com;,也是

接下来,您只需要在字符串的开头或之后匹配此项;。因此,您可以使用

变量满\u str1='0ab@xyz.com;cab@xyz.com;c-ab@xyz.com;Cab@xyz.com;c_ab@xyz.com;'; 变量可移动\u str2=ab@xyz.com;'; var rx=new RegExp^ |+可移动的\u str2.替换/[-\/\^$*+.|[\]{}]/g,'\\$&',g; console.logFull_str1.replacerx$1;
// => cab@xyz.com;c-ab@xyz.com;Cab@xyz.com;c_ab@xyz.com; 首先,动态部分必须是,否则。将匹配除换行符以外的任何字符,并且将匹配ab@xyz§com;,也是

接下来,您只需要在字符串的开头或之后匹配此项;。因此,您可以使用

变量满\u str1='0ab@xyz.com;cab@xyz.com;c-ab@xyz.com;Cab@xyz.com;c_ab@xyz.com;'; 变量可移动\u str2=ab@xyz.com;'; var rx=new RegExp^ |+可移动的\u str2.替换/[-\/\^$*+.|[\]{}]/g,'\\$&',g; console.logFull_str1.replacerx$1;
// => cab@xyz.com;c-ab@xyz.com;Cab@xyz.com;c_ab@xyz.com;你能更清楚地知道什么是输入,什么是预期输出吗?你到底需要删除什么?@CalvinNunes:我只想从完整的str1中删除removable_str2。需要使用正则表达式吗?是否每个单词/站点都用一个?对于正则表达式不是强制性的,是的,每个字符串都用a;分隔;。如果没有正则表达式,您可以按拆分字符串;然后循环它并删除与您想要删除的内容完全匹配的每个值,最后只需再次连接字符串。但是,使用regex可能会减少代码和麻烦,您能否更清楚地了解输入和预期输出是什么?你到底需要删除什么?@CalvinNunes:我只想从完整的str1中删除removable_str2。需要使用正则表达式吗?是否每个单词/站点都用一个?对于正则表达式不是强制性的,是的,每个字符串都用a;分隔;。如果没有正则表达式,您可以按拆分字符串;然后循环它并删除与您想要删除的内容完全匹配的每个值,最后只需再次连接字符串。但是使用正则表达式可能会减少代码和文本的麻烦tatatab@xyz.com; 会受到你的影响吗regex@Gr戈里纽特收到了短信tatatab@xyz.com; 会受到你的影响吗regex@GrégoryNEUT得到了它不需要两个替换操作,请参阅。不需要两个替换操作,请参阅。