Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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_Regex_Replace - Fatal编程技术网

Javascript 在字符串中查找多次出现的字符

Javascript 在字符串中查找多次出现的字符,javascript,regex,replace,Javascript,Regex,Replace,我有一个字符串,我想删除字母a(例如)的前3个匹配项 似乎正则表达式对于特定数量的事件没有解决方案。我不能在没有循环的情况下使用replace,这是我想要避免的 我有一个字符串,我想删除 字母a(例如) 如果regex不是强制性的,循环也不是一个大问题,那么试试这个单行循环 str = str.split(/(?=a)/).map(function(value,index){ if (index < 3){value=value.replace("a", "")} return value

我有一个字符串,我想删除字母
a
(例如)的前3个匹配项

似乎正则表达式对于特定数量的事件没有解决方案。我不能在没有循环的情况下使用
replace
,这是我想要避免的

我有一个字符串,我想删除 字母a(例如)

如果regex不是强制性的,循环也不是一个大问题,那么试试这个单行循环

str = str.split(/(?=a)/).map(function(value,index){ if (index < 3){value=value.replace("a", "")} return value }).join(""); // 3 and "a" can be passed on as input
str=str.split(/(?=a)/).map(函数(值,索引){if(索引<3){value=value.replace(“,”)}返回值})。join(“”;/)3和“a”可以作为输入传递
让它成为这样一个函数

函数删除事件(str、toberepaleced、n)
{
return str.split(/(?=a)/).map(函数(值,索引){if(index
我有一个字符串,我想删除 字母a(例如)

如果regex不是强制性的,循环也不是一个大问题,那么试试这个单行循环

str = str.split(/(?=a)/).map(function(value,index){ if (index < 3){value=value.replace("a", "")} return value }).join(""); // 3 and "a" can be passed on as input
str=str.split(/(?=a)/).map(函数(值,索引){if(索引<3){value=value.replace(“,”)}返回值})。join(“”;/)3和“a”可以作为输入传递
让它成为这样一个函数

函数删除事件(str、toberepaleced、n)
{
return str.split(/(?=a)/).map(函数(值,索引){if(index
循环
字符串#替换
正则表达式

var str=“abcabc”;
函数替换(s、符号、替换、次数){
如果(次==0)返回s;
var i=s.indexOf(符号);
var a=s.分割(“”);
a[i]=替代品;
返回替换(a.join(“”),符号,替换,--次)
}
var结果=替换(str,'a','u',3);

记录(结果)
循环
字符串#替换
正则表达式

var str=“abcabc”;
函数替换(s、符号、替换、次数){
如果(次==0)返回s;
var i=s.indexOf(符号);
var a=s.分割(“”);
a[i]=替代品;
返回替换(a.join(“”),符号,替换,--次)
}
var结果=替换(str,'a','u',3);
记录(结果)不错的挑战

这项工作:

var str=“我有一个字符串,我想删除字母a的前3个匹配项(例如)。”;
str=str.replace(/^([^a]*a){3}/,函数(匹配){
返回匹配。替换(/a/g,“!”);
});
document.body.innerHTML=str不错的挑战

这项工作:

var str=“我有一个字符串,我想删除字母a的前3个匹配项(例如)。”;
str=str.replace(/^([^a]*a){3}/,函数(匹配){
返回匹配。替换(/a/g,“!”);
});

document.body.innerHTML=str这是一个利用的
thisArg
的解决方案

var string='a1a2a3a4a5a6a7a8a9a'.split('').filter(函数(a){
返回a!='a'| |++这个.c>3;
}连接(“”);

document.write(字符串)这是一个利用的
thisArg
的解决方案

var string='a1a2a3a4a5a6a7a8a9a'.split('').filter(函数(a){
返回a!='a'| |++这个.c>3;
}连接(“”);

document.write(字符串)使用替换回调计数匹配项:

函数replaceFirstN(str、regex、n、replacement){
var i=0;
return str.replace(正则表达式,函数(匹配){
返回i++

使用替换回调计数匹配项:

函数replaceFirstN(str、regex、n、replacement){
var i=0;
return str.replace(正则表达式,函数(匹配){
返回i++


3是一个可变数字吗?你能举一些例子吗?你为什么要避免“循环”?3是一个可变数字吗?你能举一些例子吗?你为什么要避免“循环”?我不能使用不带循环的替换,我想避免……这实际上很尴尬。@Jai你说的尴尬是什么意思?@Jai-true,已更新答案以包含免责声明:)。但代码无法确定它如何保证否决票。而且我不能使用不带循环的替换,这是我想要避免的…..这实际上很尴尬。@Jai你说尴尬是什么意思?@Jai-true,已经更新了答案以包含免责声明:)。但该准则并不确定它如何保证否决票。▲ 我在考虑类似的两步解决方案。@Jai:啊,都是横向思考。谢谢你的编辑!▲ 我在考虑类似的两步解决方案。@Jai:啊,都是横向思考。谢谢你的编辑!