字母数字正则表达式javascript

字母数字正则表达式javascript,javascript,jquery,regex,Javascript,Jquery,Regex,让字母数字字符的简单正则表达式只能在javascript中工作,我遇到了一个问题: var validateCustomArea = function () { cString = customArea.val(); var patt=/[0-9a-zA-Z]/; if(patt.test(cString)){ console.log("valid"); }else{ console.

让字母数字字符的简单正则表达式只能在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");
        }
    }

我需要对正则表达式求反,你的第三行不是应该有一个分号吗?代码运行良好,只是结果是正确的wrong@Dan:事实上,分号在JavaScript中是可选的。我猜上面的正则表达式会检查您的字符串中是否存在分号,我希望我的字符串是唯一的alphanumeric@muistooshort如果我错了,请纠正我,但大多数时候它们不是可选的吗?有时它们是必需的,因此养成了经常使用它们的好习惯。