删除Javascript中特定字符之间的所有内容
在Javascript中,从以下字符串 filterExpress=%1和%2以及%3和%5和%6 我需要删除“%”(即%和一个空格)之后以及下一次出现%之前的任何内容 所以输出字符串应该是- %1和%2以及%3和%5以及%6 我尝试使用regexp,如下所示 filterExpress=filterExpress.替换(/%.[^%]/,''); 但是,这与我想要的结果不匹配删除Javascript中特定字符之间的所有内容,javascript,Javascript,在Javascript中,从以下字符串 filterExpress=%1和%2以及%3和%5和%6 我需要删除“%”(即%和一个空格)之后以及下一次出现%之前的任何内容 所以输出字符串应该是- %1和%2以及%3和%5以及%6 我尝试使用regexp,如下所示 filterExpress=filterExpress.替换(/%.[^%]/,''); 但是,这与我想要的结果不匹配 请帮我给出一个解决方案。这里有一个简短的解决方案: var str = '%1 and %2 and %3 and %
请帮我给出一个解决方案。这里有一个简短的解决方案:
var str = '%1 and %2 and %3 and % and %5 and %6';
str.replace(/% .*?%/g, '%'); // "%1 and %2 and %3 and %5 and %6"
Regexp解释说:
匹配从
%[space]
开始直到第一个%
的任何内容。它具有全局修改器,因此在第一次匹配后不会停止。它匹配了两个%,因此其中一个在替换字符串中。与最后一个%不匹配的正则表达式
var str='%1 and %2 and %3 and % and %5 and %6';
str=str.replace(/% .+?(?=%)/g,'');
//Match a % followed by a space than then any character until the next %
//but not including it. Also, do a global replace.
试试这个:
var str = '%1 and %2 and %3 and % and %6';
var newStr = '';
for(var i = 0; i < str.length; i++){
var c = str[i];
if(c === '%' && str[i+1] === ' '){
i += ' and '.length;
continue;
}
newStr += c;
}
var str='%1和%2以及%3和%6';
var newStr='';
对于(变量i=0;i
请尝试以下任何操作-
代码(使用regexp)
代码(不使用regexp)
欢迎光临。请更具体地说明运行此代码时的结果,并提供解决问题的尝试。很抱歉,论坛刚开始使用javascript filterExpress=“%1和%2和%3和%5和%6”,输出应为“%1和%2和%3和%5和%6”。我尝试过filterExpress=filterExpress。替换(/%.[^%]/,'')谢谢Tibos。完美的这就是我需要的。
var str = '%1 and %2 and %3 and % and %5 and %6';
str=str.replace(/% [^%]+%/g, '%'); // "%1 and %2 and %3 and %5 and %6"
alert(str);
var filterExpress = "%1 and %2 and %3 and % and %5 and %6";
//start of logic
while(filterExpress.indexOf("% ")!=-1)
{
filterExpress=filterExpress.substr(0, filterExpress.indexOf("% "))+filterExpress.substr(filterExpress.indexOf("%",filterExpress.indexOf("% ")+1));
}
//end of logic
alert(filterExpress);