2

我打算用javascript制作一个游戏,在其中我会给用户一个选项来选择给定的字符并制作一个有效的英文单词,现在的问题是我如何在javascript中检查用户输入的是一个有效的英文单词或不是,假设我给用户以下字母

  1. D
  2. G

现在可能他可以用这些字符组成三个词GodGood或者Dog

提前致谢

编辑

这些家伙呢

Typo.JS

这是一个好方法吗?

4

5 回答 5

5

可以想象他也可以写DOGO。您需要使用允许单词的字典,并检查答案。

var allowedWords = ['god','good','dog','do','go'];
var enteredWord = 'GOD';

if(allowedWords.indexOf(enteredWord.toLowerCase()) >= 0) {
   // match
}
于 2013-01-04T11:45:03.167 回答
2

这里有英文单词 MySql 数据库。 http://androidtech.com/html/wordnet-mysql-20.php

现在您需要实现服务器端功能。当 word 不存在时将返回 true 或 false。您可以使用 Jquery 通过 Ajax 调用服务并检查游戏中的单词。

于 2013-01-04T11:47:34.407 回答
1

看看这个:http ://ejohn.org/blog/dictionary-lookups-in-javascript/

寻找客户端解决方案。

于 2013-01-04T11:45:00.777 回答
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

但是,是的,您将不得不为您的游戏手动编写字典,因为除了检查该单词是否真的是一个英文单词之外,您还必须检查您的角色是否可以制作该单词。

于 2013-01-04T11:54:16.700 回答
0

正如托尔建议的那样,您需要一本字典(一组字符串,这些单词是您认为有效的“英语单词”)。

But if you really want to check the input against any english word the "English Dictionary" the array of words would be realy huge and, as it would be loaded along the Javascript, the Javascript would become a file too big to download along with your web page.

In that case, you'd need a database (let say MySQL) to store the words and a script that runs on the server (let's say PHP) that you pass the word with an ajax call. The script would make a query on the DB to see if the word exists and give back the result to your javascript as the ajax response (1=english word 0=word not on the dictionary)

于 2013-01-04T11:57:35.583 回答