** 更新:
jsfiddle.net/terra823/WA6sX
我基本上是在寻找文本输入并将输入文本与一个名为 magic_words 的数组进行比较。如果匹配,则将屏幕变为蓝色,如果不匹配,则将屏幕变为绿色。到目前为止,当我进行匹配时,它会将屏幕变为蓝色,但在进行初始匹配后似乎并没有继续比较。如果有人知道编写函数的更好方法 - 也许使用正则表达式 - 我将非常感谢您的帮助!
** 旧帖:
我正在编写一些 Javascript 代码,这些代码获取用户输入的内容并将其与我拥有的数组进行比较。如果它与某些单词匹配,则会触发更改。我正在工作的那部分代码,但是,在触发所述事件后,我希望页面返回到默认状态。换句话说,用户在默认状态下开始页面,在写作过程中,他通过输入数组中的特定单词来触发事件,一旦他继续输入,他就会返回到默认状态。这是我为该功能所拥有的:
function handleChange(){
var newText=input.value;
if (newText==oldText)return; else oldText=newText;
set(reversed, reverse(newText));
set(count, 'You entered '+newText.length+' characters.');
set(orig, newText);
// 魔法词数组
var magic_words = ["cool", "brother", "fun", "sister", "apple", "orange"];
// 屏幕背景
var box = document.getElementById("box");
// splitEnds 采用 newText 并将输入文本的整个字符串拆分为单词,方法是在 SPACE 处拆分字符串
var splitEnds = newText.split(" ");
// 屏幕最初是白色的
var color = "white";
// 当用户开始时,屏幕变绿只是表示用户已经开始
if(newText != " ") {
color = "green";
}
// 在数组中查找所有的magic_words
for (var i = 0; i < magic_words.length; i++) {
// 浏览所有 INPUT 字符串文本,这些文本被分成单独的单词
for(var x = 0; x < splitEnds.length; x++){
// 如果用户已经开始输入并且他们输入了一个magic_word 将屏幕变为蓝色
if(color == "white" || color == "green")
if (magic_words[i] == splitEnds[x]) {
color = "blue";
break;
}
// 我需要告诉函数继续分析文本以查看是否匹配。现在它坚持蓝色
}
}
box.style.backgroundColor = color;
}
感谢任何帮助。
谢谢,最好的,