Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除Javascript中特定字符之间的所有内容_Javascript - Fatal编程技术网

删除Javascript中特定字符之间的所有内容

删除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 %

在Javascript中,从以下字符串

filterExpress=%1和%2以及%3和%5和%6 我需要删除“%”(即%和一个空格)之后以及下一次出现%之前的任何内容

所以输出字符串应该是-

%1和%2以及%3和%5以及%6 我尝试使用regexp,如下所示

filterExpress=filterExpress.替换(/%.[^%]/,''); 但是,这与我想要的结果不匹配


请帮我给出一个解决方案。

这里有一个简短的解决方案:

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