2014-02-07 64 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

我宁愿用真名制作数据库以检查... –