如何使用javascript验证表单中的全名输入?

Mir*_*rko 1 javascript

我想编写一个函数来验证使用Javascript形式的全名输入:

一个单词就可以,名字,中间名之间也可以有一个空白字符的字符串,但是我不希望有任何数字。

有什么建议吗?

Rob*_*sto 5

有几种写方法,但是,简单来说,正则表达式

/^[a-zA-Z ]+$/ 
Run Code Online (Sandbox Code Playgroud)

应该为您工作。它将找到字母字符和空格的任何组合,但没有数字。

编辑以添加评论中的信息,我认为这很重要:

您可能还希望在方括号之间添加撇号和连字符,因为爱尔兰和意大利的名字包括前者(O'Donnell,D'Ambrosio),并且有些人已经将姓氏连字符(Claude Levi-Strauss,Ima Page-Turner等) )。

这将导致以下表达式:

/^[a-zA-Z'- ]+$/ 
Run Code Online (Sandbox Code Playgroud)


Jam*_*Jr. 5

尝试使用此正则表达式以获得最大兼容性:

\n\n
\n

如果将其放入用单引号括起来的 JavaScript 字符串中,请不要忘记转义单引号 (\')。

\n
\n\n

^(?:((([^0-9_!\xc2\xa1?\xc3\xb7?\xc2\xbf/\\\\+=@#$%\xcb\x86&*(){}|~<>;:[\\]\'\xe2\x80\x99,\\-.\\s])){1,}([\'\xe2\x80\x99,\\-\\.]){0,1}){2,}(([^0-9_!\xc2\xa1?\xc3\xb7?\xc2\xbf/\\\\+=@#$%\xcb\x86&*(){}|~<>;:[\\]\'\xe2\x80\x99,\\-. ]))*(([ ]+){0,1}(((([^0-9_!\xc2\xa1?\xc3\xb7?\xc2\xbf/\\\\+=@#$%\xcb\x86&*(){}|~<>;:[\\]\'\xe2\x80\x99,\\-\\.\\s])){1,})([\'\xe2\x80\x99\\-,\\.]){0,1}){2,}((([^0-9_!\xc2\xa1?\xc3\xb7?\xc2\xbf/\\\\+=@#$%\xcb\x86&*(){}|~<>;:[\\]\'\xe2\x80\x99,\\-\\.\\s])){2,})?)*)$

\n\n

例子:

\n\n

\r\n
\r\n
   function checkName(eid){ alert(/^(?:((([^0-9_!\xc2\xa1?\xc3\xb7?\xc2\xbf/\\\\+=@#$%\xcb\x86&*(){}|~<>;:[\\]\'\xe2\x80\x99,\\-.\\s])){1,}([\'\xe2\x80\x99,\\-\\.]){0,1}){2,}(([^0-9_!\xc2\xa1?\xc3\xb7?\xc2\xbf/\\\\+=@#$%\xcb\x86&*(){}|~<>;:[\\]\'\xe2\x80\x99,\\-. ]))*(([ ]+){0,1}(((([^0-9_!\xc2\xa1?\xc3\xb7?\xc2\xbf/\\\\+=@#$%\xcb\x86&*(){}|~<>;:[\\]\'\xe2\x80\x99,\\-\\.\\s])){1,})([\'\xe2\x80\x99\\-,\\.]){0,1}){2,}((([^0-9_!\xc2\xa1?\xc3\xb7?\xc2\xbf/\\\\+=@#$%\xcb\x86&*(){}|~<>;:[\\]\'\xe2\x80\x99,\\-\\.\\s])){2,})?)*)$/.test(document.getElementById(eid).value)? \'Congratulations! You entered a valid name.\' : \'Sorry, You entered an invalid name. Please try again.\');};
Run Code Online (Sandbox Code Playgroud)\r\n
*\r\n\t{\r\n\t\tcolor:#535353;\r\n\t\tfont-family:Arial, Helvetica, Sans-Serif;\r\n\t}\r\ninput:valid\r\n\t{\r\n\t\tbackground-color: #DEFFDF;\r\n\t}\r\n\r\ninput:invalid\r\n\t{\r\n\t\tbackground-color: #C7D7ED;\r\n\t}
Run Code Online (Sandbox Code Playgroud)\r\n
<form action="#" method="post" onsubmit="checkName(\'full_name\');return false;">\r\n\r\n<label for ="full_name">Your Name: </label>\r\n<input type="text" name="full_name" id="full_name" maxlength="85" pattern="^(?:((([^0-9_!\xc2\xa1?\xc3\xb7?\xc2\xbf/\\\\+=@#$%\xcb\x86&*(){}|~<>;:[\\]\'\xe2\x80\x99,\\-.\\s])){1,}([\'\xe2\x80\x99,\\-\\.]){0,1}){2,}(([^0-9_!\xc2\xa1?\xc3\xb7?\xc2\xbf/\\\\+=@#$%\xcb\x86&*(){}|~<>;:[\\]\'\xe2\x80\x99,\\-. ]))*(([ ]+){0,1}(((([^0-9_!\xc2\xa1?\xc3\xb7?\xc2\xbf/\\\\+=@#$%\xcb\x86&*(){}|~<>;:[\\]\'\xe2\x80\x99,\\-\\.\\s])){1,})([\'\xe2\x80\x99\\-,\\.]){0,1}){2,}((([^0-9_!\xc2\xa1?\xc3\xb7?\xc2\xbf/\\\\+=@#$%\xcb\x86&*(){}|~<>;:[\\]\'\xe2\x80\x99,\\-\\.\\s])){2,})?)*)$" title="Please enter your FULL name." style=\'width:200px;height:auto;\' required>\r\n<br><br>\r\n<button type="submit">Submit</button>\r\n&nbsp;&nbsp;\r\n<button type="reset">Reset</button>\r\n</form>
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n