检测值中非字母数字字符的函数出现语法错误

syntax error on function to detect non-alphanumeric characters in a value?

本文关键字:函数 语法 错误 数字字符 检测      更新时间:2023-09-26

我知道在这个论坛上有数百(或可能数千)关于regex函数的问题。

我已经阅读并咨询了几个,根据所有的假设,我应该有答案,我的功能应该起作用,但它不是。

我尝试构建一个函数,其中一个检查是只允许字母数字字符。

代码的删节版本如下:

function functionName() {
    var x = $("#inputId").val();
    //trying to locate any/all non alphanumeric characters & spaces
    var regex = /^[^0-9a-zA-Z's]+$/g 
    if ( x.indexOf(regex) >= 0 ){
        alert("message");
        return false;
    }
}

有谁知道我哪里错了吗?

谢谢

你不应该使用indexOf;你应该用test。这也是一个很有趣的正则表达式。我在下面修改了它,以匹配有效的字符串,而不是无效的。

function functionName(){
    var x = $("#inputId").val();
    var regex = /^[a-zA-Z0-9]+$/g;
    if ( x.test(regex) ){
        alert("Only contains alphanumeric characters. No punctuation or spaces!");
    } else {
        return false;
    }
}

regex只匹配完全由无效字符组成的字符串。您真正需要的是在至少有一个无效字符

时进行匹配。
var regex = /[^0-9a-zA-Z's]/;
if (regex.test(x)) ...

您缺少最后一个'}'