Javascript JS数组查找和替换?
我有一个正则表达式,搜索文档中的所有大写字母。它收集它们并将它们放入一个数组中没有问题 我遇到的问题是,我希望替换该数组中的项,以包含数组中捕获的每个项的范围,然后显示更新的结果。我试过很多东西 我完全不知所措。感谢您的帮助。这是我最后一次尝试Javascript JS数组查找和替换?,javascript,arrays,Javascript,Arrays,我有一个正则表达式,搜索文档中的所有大写字母。它收集它们并将它们放入一个数组中没有问题 我遇到的问题是,我希望替换该数组中的项,以包含数组中捕获的每个项的范围,然后显示更新的结果。我试过很多东西 我完全不知所措。感谢您的帮助。这是我最后一次尝试 var allCaps = new RegExp(/(?:[A-Z]{2,30})/g); var capsArray = []; var capsFound; while (capsFound = allCaps.exec(s
var allCaps = new RegExp(/(?:[A-Z]{2,30})/g);
var capsArray = [];
var capsFound;
while (capsFound = allCaps.exec(searchInput)) {
capsArray.push(capsFound[0]);
}
//for(var x = 0; x < capsArray.length; x++){
//var test = ;
capsArray.splice(0, '<span style="color:green">'+ capsArray +'</span>');
//}
}
不能像使用splice那样转换整个数组的元素-可以使用.map:
不能像使用splice那样转换整个数组的元素-可以使用.map:
您需要数组中的结果吗?如果没有,则可以使用修改的正则表达式在str中包装所有大写:
str.replace(/([A-Z])/g, '<span>$1</span>')
例如:
“A-B-C”变为['A','B','C']
是否需要数组中的结果?如果没有,则可以使用修改的正则表达式在str中包装所有大写:
str.replace(/([A-Z])/g, '<span>$1</span>')
例如:
“A-B-C”变为['A','B','C']
谢谢大家的帮助 这是我最后的解决方案,任何其他人都会迷路
var allCaps = new RegExp(/(?:[A-Z]{2,30})/g);
var capsArray = [];
var capsFound;
while (capsFound = allCaps.exec(searchInput)) {
capsArray.push(capsFound[0]);
}
if(capsArray.length > 0){
resultsLog.innerHTML += "<br><span class='warning'>So many capitals</span><br>";
searchInput = document.getElementById('findAllErrors').innerHTML;
searchInput = searchInput.replace(/([A-Z]{3,30})/g, '<span style="background-color:green">$1</span>');
document.getElementById('findAllErrors').innerHTML = searchInput;
}
else {
resultsLog.innerHTML += "";
}
谢谢大家的帮助 这是我最后的解决方案,任何其他人都会迷路
var allCaps = new RegExp(/(?:[A-Z]{2,30})/g);
var capsArray = [];
var capsFound;
while (capsFound = allCaps.exec(searchInput)) {
capsArray.push(capsFound[0]);
}
if(capsArray.length > 0){
resultsLog.innerHTML += "<br><span class='warning'>So many capitals</span><br>";
searchInput = document.getElementById('findAllErrors').innerHTML;
searchInput = searchInput.replace(/([A-Z]{3,30})/g, '<span style="background-color:green">$1</span>');
document.getElementById('findAllErrors').innerHTML = searchInput;
}
else {
resultsLog.innerHTML += "";
}
您的意思是capsFound===allCaps.ExecSearchInput吗您的意思是capsFound===allCaps.ExecSearchInput这是接受回调函数的.replace版本还有接受回调函数的.replace版本