javascript 如何验证文本框,它应该只允许字符 AZ 和 az,而不是整数或特殊字符

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/25620436/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-28 04:45:18  来源:igfitidea点击:

How can I validate a text box, which should only allow characters A-Z & a-z, not integers nor special characters

javascriptphphtml

提问by khan ggg

How to validate a text box in html, where user will enter his first name, and input do not accept integers & Special Characters?

如何验证html中的文本框,用户将在其中输入他的名字,并且输入不接受整数和特殊字符?

<input name="txtfname" type="text" maxlength="30" required />

回答by AeJey

Try this javascript code for validation

试试这个 javascript 代码进行验证

function Validate() 
{
    var val = document.getElementById('your_input_control_id').value;

    if (!val.match(/^[a-zA-Z]+$/)) 
    {
        alert('Only alphabets are allowed');
        return false;
    }

    return true;
}

回答by 0x6C77

You will want to check the username field on both the client and server side.

您将要检查客户端和服务器端的用户名字段。

Javascript:

Javascript:

var username = document.getElementsByName("txtfname")[0].value;
if (username .match(/^[A-Za-z]+$/)) {
    // Valid
} else {
    // Invalid
}

PHP:

PHP:

$username = $_POST['txtfname'];
if (preg_match("/^[A-Za-z]+$/", $username ) {
    // Valid
} else {
    // Invalid
}

回答by Karan Patyal

  In Javascript 
  var uname = document.form.username;   
   function validate(){
    var letters = /^[A-Za-z]+$/;  
    if(uname.value.match(letters))  
    {  
    return true;  
    }  
    else  
    {  
    alert('Username must have alphabet characters only');  
    return false;  
    }  
    }
    In Html 
    <form method="post" action="#" onSubmit="return validate();" name="form">
    <input type="text" name="username" class="username"/>
    <input type="submit" value="submit">
    </form>

回答by MasterMohsin

This is the proper RegEx.

这是正确的正则表达式。

The only punctuations that should be allowed in a name are full stop, apostrophe and hyphen. This RegEx will also work for names like André.

名称中唯一允许使用的标点符号是句号、撇号和连字符。这个 RegEx 也适用于像 André 这样的名字。

^[\p{L} .'-]+$

^[\p{L} .'-]+$

var username = document.getElementsById("fname").value;
if (username .match(/^[\p{L} \.'\-]+$/)) {
    // Valid username
} else {
    // Invalid username
}