gpt4 book ai didi

javascript - 记录数组中匹配字符串的所有实例 - JavaScript

转载 作者:行者123 更新时间:2023-11-28 06:39:56 25 4
gpt4 key购买 nike

我有一个数组,我想查找在文本框中键入的匹配字符串的所有实例。

当前代码可作为 fiddle 使用 - https://jsfiddle.net/Mithun6319/Lzmekhph/

var colors = ['Red', 'Blue', 'Black', 'Green', 'Grey'];

var boxHandeler = document.getElementById('box');

function textComplete(text) {
boxHandeler.addEventListener('keyup', function (ev) {
if (this.value.length >= 2) {
var boxData = this.value;
//console.log(boxData);
for(i=0;i<colors.length;i++){
while(colors[i].match(boxData)){
console.log[i];
}
}
}
});
}

最佳答案

如果您想要的是一个自动完成文本框,正如您在评论中提到的那样。您可以使用datalist

<input list='colors' />

<datalist id="colors">
<option value="Red">
<option value="Blue">
<option value="Black">
<option value="Green">
<option value="Grey">
</datalist>

您可以从下拉列表中选择或键入您将看到过滤的结果

以下是如何做到这一点javascript。这是您的代码的修改版本

<input type="text" id="box" onkeyup="matchThis(this.value)"/>

<script>
var colors = ['Red', 'Blue', 'Black', 'Green', 'Grey'];

var boxHandeler = document.getElementById('box');

function matchThis(value){
if (value.length >= 2) {
var boxData = value;
//console.info("Search String "+boxData);
var pattern = new RegExp(boxData,'gi');
for(i=0;i<colors.length;i++){
if(colors[i].match(pattern)){
console.warn(colors[i]);
}
}
}
}
</script>

您的代码存在很多问题。首先,当找到匹配时,您调用无限循环(如@ananth 的评论中所述)。您试图以数组形式访问 console.log

console.log[i];

而不是

console.log(i);

由于某种原因 fiddle 无法工作,因此请在实际环境中尝试一下

关于javascript - 记录数组中匹配字符串的所有实例 - JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33937351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com