只允许英文字符和数字输入文字

时间:2011-08-22 07:10:53

标签: javascript jquery input validation alphanumeric

现场演示:http://jsfiddle.net/thisizmonster/DveuB/

如何在不使用正则表达式的情况下更改此输入以使输入仅允许输入字符A-Z,a-z,0-9?

7 个答案:

答案 0 :(得分:32)

假设您还想接受空格:

$("#user").keypress(function(event){
    var ew = event.which;
    if(ew == 32)
        return true;
    if(48 <= ew && ew <= 57)
        return true;
    if(65 <= ew && ew <= 90)
        return true;
    if(97 <= ew && ew <= 122)
        return true;
    return false;
});

如果您不想接受空格,请删除if(ew == 32) return true;

JSFiddle

答案 1 :(得分:7)

<?php



include 'conexion.php'; 

$numero = $_POST["numero"]; 
$fechac = $_POST["fechacreacion"]; 
$fechav = $_POST["fechavencimiento"]; 
$con = $_POST["condiciones"]; 
$sub = $_POST["subtotal"]; 
$iva = $_POST["iva"]; 
$total = $_POST["total"]; 
$observaciones = $_POST["observaciones"]; 


$insertar ="INSERT INTO pedido(numero,fechaCreacion,fechaVencimiento,condiciones,subtotal,iva,total,observaciones)VALUES ('$numero','$fechac','$fechav','$con','$sub','$iva','$total','$observaciones')";

$resultado = mysqli_query($conexion,$insertar);

if(!$resultado){
   echo mysqli_error($conexion);
}
else {
   echo 'Se ha llenado el formulario con exito';
}

mysqli_close($conexion);

?>

ASCII字符集:https://www.w3schools.com/charsets/ref_html_ascii.asp

答案 2 :(得分:4)

您可以执行以下操作:http://jsfiddle.net/DveuB/1/

然后它只有0-9,a-z和A-Z

$(function(){
    $("#user").keypress(function(event){
        if ((event.charCode >= 48 && event.charCode <= 57) || // 0-9
            (event.charCode >= 65 && event.charCode <= 90) || // A-Z
            (event.charCode >= 97 && event.charCode <= 122))  // a-z
            alert("0-9, a-z or A-Z");
    });
});

更新: http://jsfiddle.net/DveuB/4/
为了防止@mu在谈论:

$("#user").keyup(function(event){
    if (event.altKey == false && event.ctrlKey == false)
        if ((event.keyCode >= 48 && event.keyCode <= 57 && event.shiftKey== false) ||
            (event.keyCode >= 65 && event.keyCode <= 90) ||
            (event.keyCode >= 97 && event.keyCode <= 122))
            alert("0-9, a-z or A-Z");
});

答案 3 :(得分:1)

认为你必须写一些if语句或类似的东西,它接受键码并对代表其他键码的某些数字进行验证:

例如: if(keycode < 80) return false;

答案 4 :(得分:1)

<html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$(document).ready(function () {

  $('.clsAlphaNoOnly').keypress(function (e) {  // Accept only alpha numerics, no special characters 
        var regex = new RegExp("^[a-zA-Z0-9 ]+$");
        var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
        if (regex.test(str)) {
            return true;
        }

        e.preventDefault();
        return false;
    }); 
})
</script>

<body>

<input class='clsAlphaNoOnly' type='text'>
</body>
</html>

答案 5 :(得分:0)

我正在使用此功能。

通过修改RegExp,您可以摆脱个人不喜欢的任何字符。

$(function(){
    $("#user").bind('keypress',function(e){
        var regex = new RegExp("^[a-zA-Z0-9 ]+$");
        var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
        if (regex.test(str)) return true;
        e.preventDefault();
        return false;
    });
});

答案 6 :(得分:0)

以上所有答案都可以,但不能防止复制和粘贴非英文字符。

‌以下代码可同时用于(按键和复制粘贴):

<input type="text" name="text" oninput="this.value=this.value.replace(/[^A-Za-z\s]/g,'');">