字母数字正则表达式javascript

alphanumeric regex javascript

本文关键字:javascript 正则表达式 数字      更新时间:2023-09-26

我有一个问题,获得简单的规则字母数字字符只在javascript中工作:

var validateCustomArea = function () {
        cString = customArea.val();
        var patt=/[0-9a-zA-Z]/;
        if(patt.test(cString)){
            console.log("valid");
        }else{
            console.log("invalid");
        }
    }

我检查从jquery keyup事件后的文本字段值,但结果不是预期的,我只希望字母数字字符是在字符串

此正则表达式:

/[0-9a-zA-Z]/

将匹配至少包含一个字母数字字符的任何字符串。我想你在找这个:

/^[0-9a-zA-Z]+$/
/^[0-9a-zA-Z]*$/ /* If you want to allow "empty" through */

或者可能是这样:

var string = $.trim(customArea.val());
var patt   = /[^0-9a-z]/i;
if(patt.test(string))
    console.log('invalid');
else
    console.log('valid');

您的函数只检查一个字符(/[0-9a-zA-Z]/表示一个字符在任何范围0-9,a-z,或a-z),但读取整个输入字段文本。您需要循环这个或检查字符串中的所有字符,如/^[0-9a-zA-Z]*$/。我建议后者。

我是这样修改的

var validateCustomArea = function () {
        cString = customArea.val();
        console.log(cString)
        var patt=/[^0-9a-zA-Z]/
        if(!cString.match(patt)){
            console.log("valid");
        }else{
            console.log("invalid");
        }
    }

我需要否定正则表达式