我打算在javascript中制作一个游戏,我将为用户提供选择给定字符和制作有效英语单词的选项,现在的问题是我如何在javascript中检查用户输入的内容是否有效英语单词与否,假设 我给用户以下信件
现在他可以用这些字符God
,Good
或Dog
制作三个单词。
提前致谢
修改
这家伙怎么样?
这是否是一个好方法?
答案 0 :(得分:4)
他还可以设想DO
和GO
。您需要使用允许单词的字典,并检查答案。
var allowedWords = ['god','good','dog','do','go'];
var enteredWord = 'GOD';
if(allowedWords.indexOf(enteredWord.toLowerCase()) >= 0) {
// match
}
答案 1 :(得分:2)
这里有英文单词MySql database。 http://androidtech.com/html/wordnet-mysql-20.php
现在您需要实现服务器端功能。当word不存在时返回true或false。 您可以使用Jquery通过Ajax调用服务并检查游戏中的单词。
答案 2 :(得分:1)
检查出来:http://ejohn.org/blog/dictionary-lookups-in-javascript/
寻找客户端解决方案。
答案 3 :(得分:1)
如果您有多个问题,也可以像这样验证答案:
var gameDict = [
{ 'letters':['o','d','o','g'], 'words':['god','good','dog','do','go', 'goo']},
{ 'letters':['a','e','p'], 'words':['ape']},
{ 'letters':['p','n','e','t'], 'words':['pen', 'ten', 'net']}
]
// Returns `true` if the answer is valid, `false` if it's not.
function validateAnswer(questionNumber, answer){
return gameDict[questionNumber].words.indexOf(answer.toLowerCase()) >= 0;
}
console.log(validateAnswer(0,'Good'));
// true
console.log(validateAnswer(1,'ap'));
// false
但是,是的,您必须手动为您的游戏编写字典,因为除了检查该单词是否实际上是英文单词之外,您还必须检查您的角色是否可以制作该单词。
答案 4 :(得分:0)
托尔建议你需要一本字典(一系列字符串,你认为这些单词是有效的“英语单词”)。
但是如果你真的想检查输入对任何英文单词“英语词典”那么单词数组将真正巨大,因为它会加载沿着Javascript,Javascript将成为一个太大的文件,无法与您的网页一起下载。
在这种情况下,您需要一个数据库(比如说MySQL)来存储单词和在服务器上运行的脚本(假设是PHP),您通过ajax调用传递单词。该脚本将在数据库上查询该单词是否存在,并将结果作为ajax响应返回给您的javascript(1 =英文单词0 =单词不在字典上)