Javascript 一个简单的regexp
regexp必须在已读和未读状态下删除id或idJavascript 一个简单的regexp,javascript,firefox,greasemonkey,Javascript,Firefox,Greasemonkey,regexp必须在已读和未读状态下删除id或id GM_setValue('unreadids', unreadids.replace(new RegExp('('+id+',)|(,'+id+')', 'i'),'')); GM_setValue('readids', readids.replace(new RegExp('('+id+',)|(,'+id+')', 'i'), '')); 在RX工具箱中,用于测试的(,1 | 1,)1或,1被替换为零 在现实生活中 …id不会被任何内容
GM_setValue('unreadids', unreadids.replace(new RegExp('('+id+',)|(,'+id+')', 'i'),''));
GM_setValue('readids', readids.replace(new RegExp('('+id+',)|(,'+id+')', 'i'), ''));
在RX工具箱中,用于测试的(,1 | 1,)1或,1被替换为零
在现实生活中
…id不会被任何内容替换
为什么?你的问题有点难理解,我不认为它清楚地解释了你需要做什么和什么是错的。我不确定链接是否因为断开而清晰 我想我明白你的意思,但我可能错了 如果你有一根像
var test = "(674,)|(,674)"
其中674是“id”,您正试图用“”替换“674”和“、674”,以获得“()|()”
然后,您的代码应该可以正常工作,除非您还需要“g”(全局)标志来替换所有实例
例如:
var test = "(674,)|(,674)";
var id = "674";
var expr = new RegExp('(' + id + ',)|(,' + id + ')', 'gi');
var b = test.replace(expr, '');
alert(test);
alert(b);
您使用同一个正则表达式两次,为什么不保存它呢
如果您想知道为什么除了“674”或“675”之外,它不替换“674”的实例……那是因为您没有编写正则表达式来替换它!你的只在上面加了逗号
如果您正试图这样做,请将“、674”和“674”替换为null,然后将普通的“674”替换为null,那么这里有一个正则表达式,它将匹配所有这些:
var expr = new RegExp(',?' + id + ',?', 'gi');
??与前面的字符匹配0或1次
如果您只需要匹配与ing()|()发生的实例,那么很容易调整前面的正则表达式,我将把它作为练习留给读者。您的问题很难理解。您能否生成一个5行左右的脚本来演示您的问题?如果是这样的话,请在这里(而不是在其他网站)发布您的独立示例代码,以及您获得的输出和您想要的输出。感谢您在社交技能方面提供的帮助