请问jQuery的validate插件,如何同时验证手机或邮箱

chen_2016_web 2017-07-10 01:59:08
如题,请问使用jQuery的validate插件,如何验证手机或邮箱。
我意思是,只有一个文本框输入用户账号,账号只能是邮箱或手机,如何使用validate插件对它进行校验?如果输入的不是手机或邮箱就提示错误。
使用validate插件来校验,实在不行,再使用正则吧!
谢谢
...全文
421 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
___紫菜 2017-07-11
  • 打赏
  • 举报
回复
引用 5楼我是你的主体 的回复:
[quote=引用 3 楼 u013116426 的回复:] [quote=引用 2 楼 chen_2016_web 的回复:] [quote=引用 1 楼 u013116426 的回复:] 先用CheckEmail验证,插件没有验证手机格式的方法,不过你可以自定义一个。
// 手机号码验证
jQuery.validator.addMethod("isMobile", function(value, element) {
    var length = value.length;
    var mobile = /^(13[0-9]{9})|(18[0-9]{9})|(14[0-9]{9})|(17[0-9]{9})|(15[0-9]{9})$/;
    return this.optional(element) || (length == 11 && mobile.test(value));
}, "请正确填写您的手机号码");
这样没什么用,不能完成我的目的。[/quote] 为什么无法完成你的目的,你先验证是否是邮箱,是就通过,不是再验证是否是手机号码,是就通过,不是就提示错误[/quote] 我已经使用新方法验证通过了,你这个只是验证手机的吧,我要的是同时验证手机和邮箱的。如果在里面加上手机的验证信息和邮箱的验证信息,就会出现矛盾了,最后肯定是错的。 当时自己犯糊涂了,既然可以自定义验证手机,为何不能自定义验证手机+邮箱呢,于是做了下面的修改,就行了

jQuery.validator.addMethod("mbmp", function(value, element) {
		var length = value.length;
		var mobile = /^(13[0-9]{9})|(18[0-9]{9})|(14[0-9]{9})|(17[0-9]{9})|(15[0-9]{9})$/;
		var email =/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
		return this.optional(element) || (email.test(value) || mobile.test(value));
	}, "请输入正确的账号");
[/quote]要是项目没有其他地方单独用到手机或者邮箱验证那你这样是更好的
chen_2016_web 2017-07-10
  • 打赏
  • 举报
回复
引用 4 楼 yenange 的回复:
你可以定义一个是否手机或 Email 的自定义规则。
jQuery.validator.addMethod("isMobileOrEmail", function(value, element) {
    //xxxxx
}, "请正确填写您的手机号码或邮箱地址");
确实,我是使用了这个方法,当时犯糊涂了!
chen_2016_web 2017-07-10
  • 打赏
  • 举报
回复
引用 3 楼 u013116426 的回复:
[quote=引用 2 楼 chen_2016_web 的回复:] [quote=引用 1 楼 u013116426 的回复:] 先用CheckEmail验证,插件没有验证手机格式的方法,不过你可以自定义一个。
// 手机号码验证
jQuery.validator.addMethod("isMobile", function(value, element) {
    var length = value.length;
    var mobile = /^(13[0-9]{9})|(18[0-9]{9})|(14[0-9]{9})|(17[0-9]{9})|(15[0-9]{9})$/;
    return this.optional(element) || (length == 11 && mobile.test(value));
}, "请正确填写您的手机号码");
这样没什么用,不能完成我的目的。[/quote] 为什么无法完成你的目的,你先验证是否是邮箱,是就通过,不是再验证是否是手机号码,是就通过,不是就提示错误[/quote] 我已经使用新方法验证通过了,你这个只是验证手机的吧,我要的是同时验证手机和邮箱的。如果在里面加上手机的验证信息和邮箱的验证信息,就会出现矛盾了,最后肯定是错的。 当时自己犯糊涂了,既然可以自定义验证手机,为何不能自定义验证手机+邮箱呢,于是做了下面的修改,就行了

jQuery.validator.addMethod("mbmp", function(value, element) {
		var length = value.length;
		var mobile = /^(13[0-9]{9})|(18[0-9]{9})|(14[0-9]{9})|(17[0-9]{9})|(15[0-9]{9})$/;
		var email =/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
		return this.optional(element) || (email.test(value) || mobile.test(value));
	}, "请输入正确的账号");
吉普赛的歌 社区高级成员 T9 2017-07-10
  • 打赏
  • 举报
回复
你可以定义一个是否手机或 Email 的自定义规则。
jQuery.validator.addMethod("isMobileOrEmail", function(value, element) {
    //xxxxx
}, "请正确填写您的手机号码或邮箱地址");
___紫菜 2017-07-10
  • 打赏
  • 举报
回复
引用 2 楼 chen_2016_web 的回复:
[quote=引用 1 楼 u013116426 的回复:] 先用CheckEmail验证,插件没有验证手机格式的方法,不过你可以自定义一个。
// 手机号码验证
jQuery.validator.addMethod("isMobile", function(value, element) {
    var length = value.length;
    var mobile = /^(13[0-9]{9})|(18[0-9]{9})|(14[0-9]{9})|(17[0-9]{9})|(15[0-9]{9})$/;
    return this.optional(element) || (length == 11 && mobile.test(value));
}, "请正确填写您的手机号码");
这样没什么用,不能完成我的目的。[/quote] 为什么无法完成你的目的,你先验证是否是邮箱,是就通过,不是再验证是否是手机号码,是就通过,不是就提示错误
chen_2016_web 2017-07-10
  • 打赏
  • 举报
回复
引用 1 楼 u013116426 的回复:
先用CheckEmail验证,插件没有验证手机格式的方法,不过你可以自定义一个。
// 手机号码验证
jQuery.validator.addMethod("isMobile", function(value, element) {
    var length = value.length;
    var mobile = /^(13[0-9]{9})|(18[0-9]{9})|(14[0-9]{9})|(17[0-9]{9})|(15[0-9]{9})$/;
    return this.optional(element) || (length == 11 && mobile.test(value));
}, "请正确填写您的手机号码");
这样没什么用,不能完成我的目的。
___紫菜 2017-07-10
  • 打赏
  • 举报
回复
先用CheckEmail验证,插件没有验证手机格式的方法,不过你可以自定义一个。
// 手机号码验证
jQuery.validator.addMethod("isMobile", function(value, element) {
    var length = value.length;
    var mobile = /^(13[0-9]{9})|(18[0-9]{9})|(14[0-9]{9})|(17[0-9]{9})|(15[0-9]{9})$/;
    return this.optional(element) || (length == 11 && mobile.test(value));
}, "请正确填写您的手机号码");

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧