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版本