需要帮助使用JQuery.inArray()检查值是否存在
Need help checking if a value exist using JQuery .inArray()
当用户在输入字段(emailaddressVal)中键入与我的数组中的值(invalidEmailAddresses)匹配的值时,我希望显示一条错误消息。但我不知道该怎么做。谢谢你的帮助!
$(document).ready(function(){
$("input[name='emailAddress']").blur(function(){
// Actual Email Validation function
var emailReg = /^(['w-'.]+@(['w-]+'.)+['w-]{2,4})?$/;
var hasError = false;
var emailaddressVal = $("input[name='emailAddress']").val();
var invalidEmailAddresses =
['aol.com', 'yahoo.com', 'yahoo.fr', 'juno.com', 'hotmail.com', 'gmail.com'];
if($.inArray(invalidEmailAddresses,emailaddressVal) == -1) {
alert('The email provided is not from a business related domain');
}
});
});
尝试以下代码
$(document).ready(function () {
$("input[name='emailAddress']").blur(function () {
var emailAddress = $("input[name='emailAddress']").val().trim();
if (isValidEmailAddres(emailAddress)) {
var hasError = false;
var emailaddressVal = emailAddress.split('@').slice(1)[0].trim();
var invalidEmailAddresses = ['aol.com', 'yahoo.com', 'yahoo.fr', 'juno.com', 'hotmail.com', 'gmail.com'];
if ($.inArray(emailaddressVal, invalidEmailAddresses) >=0) {
alert('The email provided is not from a business related domain');
}
} else alert("Invalid EmailID");
});
function isValidEmailAddres(emailID) {
var regexExp = new RegExp(/^((([a-z]|'d|[!#'$%&''*'+'-'/='?'^_`{'|}~]|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF])+('.([a-z]|'d|[!#'$%&''*'+'-'/='?'^_`{'|}~]|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF])+)*)|(('x22)(((('x20|'x09)*('x0d'x0a))?('x20|'x09)+)?((['x01-'x08'x0b'x0c'x0e-'x1f'x7f]|'x21|['x23-'x5b]|['x5d-'x7e]|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF])|(''(['x01-'x09'x0b'x0c'x0d-'x7f]|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF]))))*((('x20|'x09)*('x0d'x0a))?('x20|'x09)+)?('x22)))@((([a-z]|'d|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF])|(([a-z]|'d|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF])([a-z]|'d|-|'.|_|~|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF])*([a-z]|'d|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF])))'.)+(([a-z]|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF])|(([a-z]|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF])([a-z]|'d|-|'.|_|~|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF])*([a-z]|['u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF])))'.?$/i);
return regexExp.test(emailID);
}
});
看看这把小提琴我做的改变
我添加了一个电子邮件验证功能。只有当它是一个有效的电子邮件地址时,您才会继续进行主机名检查。
$.inArray
的正确格式为$.inArray( stringvalue, array)
。所以必须是$.inArray(emailaddressVal,invalidEmailAddresses)
emailaddressVal将包含完整的电子邮件地址。首先,您需要从完整的电子邮件地址中提取主机名。它在var emailaddressVal = emailAddress.split('@').slice(1)[0].trim();
因此,如果您的电子邮件地址是abc@gmail.com
,那么上面的行将返回gmail.com
。
$inArray的返回类型是传递的字符串(在您的情况下为emailaddressVal)出现在arraylist(invalidEmailAddresses)中的位置。它将返回一个大于或等于0的值。根据您的要求,当您希望电子邮件中的主机id出现在主机名数组中时,您必须显示消息。你需要做if($.inArray(emailaddressVal, invalidEmailAddresses) >=0)
您可以像这样使用jQuery inArray测试。
var emailaddressVal = $("input[name='emailAddress']").val();
下面的代码测试用户输入,看看它是否在数组中,并存储它所在的索引。
var inArrTest = $.inArray(emailaddressVal, invalidEmailAddresses);
此代码测试inArrTest变量,并获取用户匹配值的索引。
if (inArrTest) {
// Your error message would go here. //
console.log(invalidEmailAddresses[inArrTest]);
}
您可以将错误消息嵌套在if块中。
原始代码不起作用,因为-1检查变量是否不在数组中。
$.inArray(invalidEmailAddresses,emailaddressVal) == -1)
Sukanya的代码检查变量是否大于0,0是数组的第一个索引。
$.inArray(emailaddressVal,invalidEmailAddresses) > 0
- 使用map来检查是否为真'不起作用
- 检查是否存在使用chrome扩展的javascript库
- 检查是否存在任意控制器/操作
- 检查是否已加载原型
- angularJs检查是否输入
- Phonegap应用程序检查是否启用了推送通知
- 检查是否已设置GET变量
- 检查是否可以在另一个数组中找到所有项
- 如何检查是否存在“;没有到主机的路由”;在流式传输视频的过程中一遍又一遍
- Javascript-检查是否设置了cookie
- AngularJs 检查是否未定义和空的最佳实践
- 如何检查是否启用了 javascript 并将其纳入网页
- 检查是否对任何输入文件进行了更改
- 如何检查是否调整浏览器大小的条件
- 重力表格 - gform_post_render检查是否提交
- 检查是否释放了 HTML 按钮
- 循环遍历单选按钮(20 组,每组 3 个),并检查是否选中了每个组
- Jquery Ajax 和 Json:如何检查是否未定义
- jQuery或Javascript检查是否加载了图像
- Heroku+Backbone.js——如何检查是否在生产或开发中