Javascript jqgrid/身份验证

Javascript jqgrid/身份验证,javascript,jquery,regex,validation,jqgrid,Javascript,Jquery,Regex,Validation,Jqgrid,我正在尝试创建关于jqgrid中ID的验证,以使用“custom”和“custom_func” 这是一个自定义函数,用于测试id值是否与number和englisha-z正确组合 function id_validation(value, colname) { var idReg = /[^a-z|^0-9]/gi; if (!idReg.test(value)) { alert("ID는 영숫자 조합만 사용하세요"); } } 这是列名“USER_ID”,我想应用上面的函数

我正在尝试创建关于jqgrid中ID的验证,以使用“custom”和“custom_func”

这是一个自定义函数,用于测试id值是否与number和englisha-z正确组合

function id_validation(value, colname) {
var idReg = /[^a-z|^0-9]/gi;
if (!idReg.test(value)) {
    alert("ID는 영숫자 조합만 사용하세요");
    }
}
这是列名“USER_ID”,我想应用上面的函数,所以我在“editrules”中使用了“custom”和“cusotm_func”

colModel: [               
            {name: 'USER_ID', index: 'USER_ID', editable: true, sortable: false, search: false, editrules: {custom: true, custom_func: id_validation}} ],

这段代码执行得很好,除非我输入了正确的值。然而,最大的问题是,即使我输入了正确的值,它也会向我显示警报。无论值是多少,它都会提醒每种情况。我错过什么了吗?我需要修理什么零件

对于匹配字符串中任何非字母数字字符的正则表达式,您只需使用

[^0-9a-zA-Z]
你也可以简单地添加一个u,如果你想让它也像这样有效的话

[^0-9a-zA-Z_]

因此,如果.teststring中有任何符号包含任何非字母数字字符,那么现在就应该匹配.teststring;如果每个字符都是字母或数字,那么它就不匹配;如果要包含这些字符,

验证的目标是不显示验证消息。只需通知jqGrid输入是否有效。如果输入无效,则应返回带有错误消息的字符串。因此,id_验证函数应该返回带有一个true元素的[true]数组,如果没有错误,则返回[true],如果输入数据错误,则返回类似[false,error message]的数组。看见因此,代码应该是关于以下内容的:

function id_validation (value, colname) {
    return /^[A-Za-z0-9]+$/.test(value) ? 
        [true] :
        [false, "ID는 영숫자 조합만 사용하세요"];
}

你试过.match而不是.test吗?@Jai是的,我先试过,但没有任何反应,所以我修改为.test。那么你想测试输入的ID是否只有字母数字字符?@Vajura绝对正确。是的,我只需要字母数字字符。我已经修改了正则表达式,与上面所写的相同,但我不知道它无法验证字母数字字符的原因。如果字符串中有一个字符不是字母数字字符,则此正则表达式将返回一个匹配项,因此awgffewa时afewa543fdsa将不匹配!我试过你的角色,但我的情况不同。自定义函数应该返回数组!显示。你知道为什么吗?你可以在这里检查这个正则表达式是如何工作的,我不知道你是如何实现它的是的,我检查了它是如何工作的,我发现这个值必须包含!!感叹号。