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:啊,都是横向思考。谢谢你的编辑!