【问题标题】:javascript input only letter [duplicate]javascript只输入字母[重复]
【发布时间】:2017-10-09 09:05:46
【问题描述】:

如何使用 Javascript 仅通过字母(带空格)对输入进行验证?

var name = document.getElementById('name').value;
    	if(name == "")
    	{
    		alert("name is empty!");
            return false;
    	}
        /*else if (...)
          {
           ...
          }*/

提前谢谢你:)

【问题讨论】:

  • 请使用搜索引擎查找教程。一旦你遇到任何具体问题回来,我们(也许)会帮助你。

标签: javascript forms validation


【解决方案1】:

使用正则表达式

var name = prompt('Your name');
if (!(/^[a-zA-Z]+$/.test(name.replace(/\s/g, '')))) {
  alert("only letters!");
}

【讨论】:

  • 感谢您的回答
  • @Wira 查看更新的答案,是否解决了您的问题
  • 它也有帮助,非常感谢。
  • @Wira 它将用空格验证名称,如果解决了您的问题,则支持并接受答案
【解决方案2】:

您可以为此使用正则表达式。看下面的例子:

function validate(){
   var name = document.getElementById('name').value;
   if(name.match(/^[a-zA-Z_ ]*$/))
        {
            //Your logice will be here.
            alert("It's valid");
        }
        else{
            alert("Please enter only alphabets");
        }
   }

我更新代码以包含空格

https://jsfiddle.net/emilvr/j1805c63/1/

【讨论】:

  • 感谢您的回答
  • 如果我的名字是“Le Blond”,则显示“请仅输入字母”
  • 我的错,我的意思是它也可以包含空格
  • 我更新了代码以包含空格@R3tep
【解决方案3】:

这是使用正则表达式通过键检查所有答案

94 --> 一个

122 -->z

$(document).ready(function(){
    $("input[type='text']").keypress(function(event){
        var inputValue = event.which;
        if(!(inputValue >= 65 && inputValue <= 120) && (inputValue != 32 && inputValue != 0)) { 
            event.preventDefault(); 
        }
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text'>

你也可以从这里看到这些数字是什么原因这个家伙使用Link in here

【讨论】:

  • 感谢您的回答
  • 您的解决方案可以防止用户删除文本或使用键盘在输入字段中导航...而且不能写大写字母。
  • 无法输入带空格的名称,例如“Le Blond”
  • @Justinas 我根据他的需要编辑了这个,你能删除你的反对票吗,因为我编辑了我的答案并改进了
  • @R3tep 和你一样
【解决方案4】:

使用正则表达式/[^a-z]/i检查是否有非字母字符:

var name = prompt('Enter name');

if(name === false || name == "") {
  alert("name is empty!");
} else if (/[^a-z]/i.test(name)){
  alert("name is not valid!");
} else {
  alert("name is valid!");
}

【讨论】:

  • 感谢您的回答
  • 如果我的名字是“Le Blond”,则显示“名字无效!”
  • @R3tep 是的,因为 OP 只允许字母:只允许字母
  • @Justinas Wira 的错误,你知道名字中有空格吗?
  • 我的错,我的意思是它也可以包含空间
猜你喜欢
  • 1970-01-01
  • 2016-02-29
  • 2011-10-25
  • 1970-01-01
  • 1970-01-01
  • 2023-01-11
  • 1970-01-01
  • 2018-04-20
  • 2017-11-13
相关资源
最近更新 更多