在字符串中搜索和替换
Search and Replace in a String
下面的代码在字符串中循环,并删除字符串中的字符与removeDuplicates((中传递的字符之间的任何重复项。所以数组将等于"iel",它可以完美地工作。然而,如果我通过一个带有双字母的单词,如"grass"数组将等于ra,因为s的两个实例都将被删除。我只需要删除字母s的一个实例,而不需要删除两个实例?
var currentWord = "field";
removeDuplicates(f,d);
removeDuplicates:function(i, j){
var arr = []
var w = "";
for(k=0;k<currentWord.length;k++){
l = currentWord[k];
arr.push(l);
if(i === l){
arr.splice(i,1);
index = arr.indexOf(i);
arr.splice(index, 1);
};
if(j === l){
index = arr.indexOf(j);
arr.splice(index, 1);
break;
};
}
for(l=0;l<arr.length;l++){
w += arr[l]
}
return w;
},
我想您正在尝试查找并替换(删除(字符串中的匹配字符。
你可以这样做:
演示:http://jsfiddle.net/gkzHX/
function findAndReplace(a, b) {
b.forEach(function(s) {
a = a.replace(s, '');
});
return a;
}
console.log(findAndReplace("field", ['f', 'd'])); // returns iel
console.log(findAndReplace("grass", ['g', 's'])); // returns ras
replace
替换目标字符串中第一个出现的字符。
此外,正如@thg435在评论中指出的那样,您可以将集合作为字符串而不是数组传递,然后在函数内部将其转换为数组,然后用replace对其进行reduce
处理。
function findAndReplace(a, b) {
return b.split("").reduce(function(a, s) {
return a.replace(s, '');
}, a);
}
现在您可以将搜索字符作为字符串传递:
console.log(findAndReplace("field", 'fd'));
console.log(findAndReplace("grass", 'gs'));
@thg435的小提琴:http://jsfiddle.net/gkzHX/1/
您只需使用.replace()
方法:
removeDuplicates: function() {
var s = currentWord;
for (var i = 0; i < arguments.length; ++i) {
s = s.replace(arguments[i], '');
}
return s;
}
removeDuplicates('f', 'd'); // iel
removeDuplicates('g', 's'); // ras
相关文章:
- Javascript搜索和替换需要包含更多内容
- 搜索并用jQuery替换整个HTML字符串
- javascript:搜索并用不同的颜色代码替换十六进制颜色代码
- IntellijJavascript多行结构搜索和替换
- 可以用两个搜索值替换JavaScript.replacement函数
- RegExp-替换搜索时的“html”标记并突出显示
- 在搜索表单中,替换空格或仅使用正则表达式的隐词和数字
- 如何使用regex在以前的搜索结果中进行搜索和替换
- JQuery 在渲染后搜索 dom 元素,并用其相应的值替换键
- 搜索/将自定义标记替换为 javascript 正则表达式
- 搜索与搜索和替换
- jQuery搜索和替换不起作用(Wordpress)
- javascript 或 PHP 来执行搜索和替换功能
- 多个下拉列表搜索替换字符串
- Javascript - 搜索网站的 HTML 并替换它
- 根据搜索/替换对替换字符串中的多个值
- 如何使用jquery/javascript搜索字符串并在页面加载时进行替换
- 捆绑前在Javascript中进行搜索和替换
- 在javascript/nodejs中搜索并替换所有内容
- javascript indexOf/替换多个搜索词