2014-02-07 42 views
-2

這聽起來像一個重複的線程,但它不是(據我搜查:D)。Javascript - 驗證名稱

<body> 

Player 1, enter name: <input type="text" id="P1_NAME"> <a id="P1_NAMEERROR"></a> 

</body> 

<script> 

// Validate names 

    document.getElementById("P1_NAME").onkeypress = function() { 
    var P1_NAME = document.getElementById("P1_NAME").value; 
    if (((/^[A-Za-z]+$/).test(P1_NAME) == false) && (P1_NAME != "")) { 
     document.getElementById("P1_NAMEERROR").innerHTML = "Invalid name"; 
    } 
    if (((/^[A-Za-z]+$/).test(P1_NAME) == true) && (P1_NAME != "")) { 
     document.getElementById("P1_NAMEERROR").innerHTML = ""; 
    } 
    if (P1_NAME == "") { 
     document.getElementById("P1_NAMEERROR").innerHTML = "Cannot be left blank"; 
    } 
} 

</script> 

使用上面的代碼,如果名稱包含數字和符號,則該名稱將被視爲無效。這意味着,「bOb78」和「yU%##」將無效。

但是,這意味着用戶只需鍵入「zhqsdakjzs」,它將被視爲有效。

那麼有沒有一種方法可以真正驗證名稱是否真實?

編輯:「真正的」,這意味着名字不是像「sudialrhsdd」,「chriiiiiiistooopheeerrr」文本無意義的字符串,等等

+0

定義「名稱」和「真實」。在一般情況下,答案是「否」。 –

+4

當然不是。什麼是*真實姓名? 1991年,一對瑞典夫婦將他們的孩子命名爲Brfxxccxxmnpcccclllmmnprxvclmnckssqlbb11116(發音爲「albin」) - http://www.neatorama.com/2008/05/19/10-strangest-names-evar/ – Faust

+0

你是指「真實「? –

回答

0

你可以做一個數據庫假名字的黑名單和將輸入與存儲的名稱進行比較。

+1

雅,但不會永存? – chris97ong

+2

我寧願用真名製作數據庫以檢查... –