javascript - jQuery 如果表单字段的值的一部分与数组中的值匹配,则

标签 javascript jquery

我希望我提交的电子邮件表单能够通过 jQuery 进行验证。

如果用户输入的 val() 与数组中的任何值匹配,我想在提交之前运行一些函数。

例如。 如果我输入

abc.com 不在数组中。好吧。

bbb.net 在数组中。所以NG。

username@ccc.co.uk 字符串的一部分位于数组中。所以NG。

blah@aaa.ne. 我不在乎...让 PHP 决定其电子邮件是否有效。所以 JavaScript 上没问题。

html:

<form action="./" method="post" id="test">
email address: <input type="text" id="mail">

<input type="submit" val="SUBMIT " id="subm">
</form>

JavaScript:

var arr = [
'aaa.ne.jp', 'bbb.net', 'ccc.co.uk', 'ddd.co.kr'
];

$('#test').on('submit', function() {
var _value = $('#mail').val();
if( $.inArray(_value, arr) > 0 || _value == '') {
    console.log(_value + ' cant be accepted');
    return false;
} else {
    console.log(_value + ' is GO!');
    return false;//do not submit just for the sake of example.
}
});

JSFIDDLE

我使用了jquery的inArray()方法,但不知何故,例如,username@ccc.co.uk通过了验证,即使ccc.co .uk 在数组中。

任何解决方案将不胜感激。谢谢。

最佳答案

尝试拆分电子邮件并比较@之后的后半部分

var arr = [
    'aaa.ne.jp', 'bbb.net', 'ccc.co.uk', 'ddd.co.kr'];

$('#test').on('submit', function () {
    var _value = $('#mail').val();
    if (_value !== '' && _value.indexOf('@') > -1) {
        var parts = _value.split('@');
        if ($.inArray(parts[1], arr) > 0 || _value == '') {
            console.log(_value + ' cant be accepted');
            return false;
        } else {
            console.log(_value + ' is GO!');
            return false; //do not submit just for the sake of example.
        }
    } else {
        console.log(_value + ' cant be accepted');
        return false;
    }
});

<强> Check Fiddle

关于javascript - jQuery 如果表单字段的值的一部分与数组中的值匹配,则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16890928/

相关文章:

javascript - 在 Jest 中使用 test.each 时跳过一些测试

javascript - 一切正常时,带有 jQ​​uery 的 Ajax 返回错误

javascript - 如何在页面滚动时保持克隆的表头不变

javascript - 突变有效负载在 vuex 存储突变中自行更改值

javascript - Jquery:如何在没有有效 href 的情况下打开 window.open()?

jquery - 如何将 div 扩展到浏览器高度或宽度,同时保持其比例? [内图]

javascript - 将文本替换为 html。 jQuery

javascript - 为什么我们在 2021 年需要 webpack

javascript - 如何正确序列化 Javascript curry 箭头函数?

javascript - 从对象渲染 React 组件