2013-01-04 48 views
1

我打算用javascript做一個遊戲,其中我將給用戶一個選擇給定字符並生成有效的英文單詞的選項,現在的問題是如何我可以檢查什麼用戶輸入是一個有效的英文單詞或不JavaScript中,假設 我給用戶下列字母如何檢查用戶在javascript中輸入有效的英文單詞

  1. Ø
  2. d
  3. Ø

現在他可以從這些字符God,GoodDog中做出三個單詞。

在此先感謝

編輯

你看這個傢伙

Typo.JS

這是一個好辦法,這樣做或沒有?

+4

您需要某種單詞詞典 - 你可以維護自己,或者找到一個現有的網絡字典,暴露一個你可以調用的API。 –

+0

這需要單詞詞典,請參閱http://stackoverflow.com/questions/6166206/javascript-spell-checking-methods –

+3

你忘了Goo,Do和Go。 – Cerbrus

回答

4

他也可以想象地寫出DOGO。您需要使用允許的單詞的字典,並根據該單詞檢查答案。

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

if(allowedWords.indexOf(enteredWord.toLowerCase()) >= 0) { 
    // match 
} 
+0

好吧,如果我認爲'做'有效或什麼是合法的然後是什麼?在這種情況下,我必須製作自己的字典 – Smartboy

2

這裏有英文單詞MySql數據庫。 http://androidtech.com/html/wordnet-mysql-20.php

現在你需要實現服務器端的功能。當字不存在時將返回true或false。 您可以使用Jquery通過Ajax調用服務,並檢查遊戲中的單詞。

-7
var t = "DOG"; 
if(t.match(/^[a-zA-Z\_]+$/g)){ 
//your code 
} 

這是正則表達式只允許字符,沒有別的,請試試這個...

+1

我們正在討論如何驗證單詞不是字符,不好的答案我認爲你應該仔細閱讀問題 – Smartboy

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 

但是的,你必須手動爲你的遊戲編寫一本字典,因爲除了檢查這個單詞是否真的是一個英文單詞外,你還必須檢查你的角色是否可以製作這個單詞。

0

正如Thor建議您需要一本字典(字符串數組,是您認爲有效的單詞「英語單詞」)。

但如果你真的要檢查對任何英文單詞的「漢英大辭典」輸入字的陣列將真的巨大和,因爲它會沿着JavaScript腳本加載的JavaScript將成爲文件太大,無法與您的網頁一起下載。

在這種情況下,你需要一個數據庫(比方說MySQL)來存儲單詞和運行在服務器上的腳本(比方說PHP),以便通過ajax調用來傳遞單詞。該腳本會在數據庫上查詢該單詞是否存在,並將結果作爲ajax響應返回給您的javascript(1 =英語單詞0 =單詞不在字典中)

相關問題