简体   繁体   English

如何防止用户在长度为0时在文本框中输入特殊字符?

[英]How to prevent user from entering special characters in text box when length is 0?

I have the following code which prevents user from entering space when the length is 0. Now, how can I prevent user from entering all special characters(anything other than az AZ 0-9) when the length is 0? 我有以下代码,当长度为0时,阻止用户输入空格。现在,如何在长度为0时阻止用户输入所有特殊字符(az AZ 0-9以外的任何字符)?

$('#DivisionName').bind('keypress', function(e) {
    if($('#DivisionName').val().length == 0){
        if (e.which == 32){//space bar
            e.preventDefault();
        }
    }
}); 

This is my text box. 这是我的文本框。

<input type="text" id="DivisionName" />

The letter and digit ranges are (inclusive): 字母和数字范围是(包括):

  • 97 - 122 (az) 97 - 122(az)
  • 65 - 90 (AZ) 65 - 90(AZ)
  • 48 - 57 (0-9) 48 - 57(0-9)

This is what you compare e.which against. 这是你比较e.which反对。

if (e.which < 48 || 
    (e.which > 57 && e.which < 65) || 
    (e.which > 90 && e.which < 97) ||
    e.which > 122) {
    e.preventDefault();
}

Or, using inverse logic: 或者,使用逆逻辑:

var valid = (e.which >= 48 && e.which <= 57) || (e.which >= 65 && e.which <= 90) || (e.which >= 97 && e.which <= 122);
if (!valid) {
    e.preventDefault();
}

Update 更新

Even so, you may still wish to validate the field contents as a whole using a regular expression: 即便如此,您仍可能希望使用正则表达式整体验证字段内容:

if (/^[A-Z0-9]+$/i.test(value)) {
    // it looks okay now
}

Or fix the field by replacing the bad stuff: 或者通过替换坏东西来修复该字段:

var stripped = value.replace(/[^A-Z0-9]+/i, '');

This is what you are looking for: 这就是你要找的东西:

$('#DivisionName').bind('keypress', function(e) {

    if($('#DivisionName').val().length == 0){
        var k = e.which;
        var ok = k >= 65 && k <= 90 || // A-Z
            k >= 97 && k <= 122 || // a-z
            k >= 48 && k <= 57; // 0-9

        if (!ok){
            e.preventDefault();
        }
    }
}); 

or see here: http://jsfiddle.net/D4dcg/ 或者看到这里: http//jsfiddle.net/D4dcg/

You can use a regex to validate the string. 您可以使用正则表达式来验证字符串。 Something like ^[a-zA-z0-9].* ^[a-zA-z0-9].*

Here is an article about testing a regex in javascript : http://www.w3schools.com/jsref/jsref_regexp_test.asp 这是一篇关于在javascript中测试正则表达式的文章: http//www.w3schools.com/jsref/jsref_regexp_test.asp

And you can even bind a change event and not a keypress. 您甚至可以绑定更改事件而不是按键。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何防止用户在表格的文本字段中输入特殊字符? - How to prevent user from entering special character in text field of form? 如何防止用户使用JQuery在表单字段中输入文本? - How to prevent user from entering text into a form field using JQuery? jQuery验证-如何限制用户在文本字段中输入数字和特殊字符? - jQuery Validation - How to restrict users from entering numbers and special characters in the text field? 如何防止用户使用 jQuery 在文本框中输入特定字符? - How do I prevent user from entering specific characters in a textbox using jQuery? 如何阻止用户在文本框中插入字符,只有数字可以插入jQuery Mobile - How can I prevent user from inserting characters in Text Box other than Only numbers can insert jQuery Mobile 如何防止用户在输入字段中输入无效字符 - How to prevent users from entering invalid characters inside an input field 如何防止用户删除文本输入中的前三个字符? - How to prevent a user from removing the first three characters in a text input? Javascript验证:单击提交时,阻止输入文本框中的特殊字符 - Javascript validation: Block special characters From input text box when click on submit 如何通过PHP而不是jQuery防止用户在输入框中键入特殊字符? - How to prevent user for type special charecter in input box by PHP not by jQuery? 如何检测用户在Javascript中输入了表情符号,特殊/外国字符和其他输入-没有按键事件? - How do I detect a user entering emojis, special/foreign characters and other input in Javascript - there is no keyup event?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM