Javascript 欧芹电子邮件或数字输入字段

Javascript 欧芹电子邮件或数字输入字段,javascript,jquery,parsley.js,parsley,Javascript,Jquery,Parsley.js,Parsley,我是欧芹新手 我想验证一个字段是否是电子邮件地址或9位数字 html 登记表 使用正则表达式 9位数字是/^\d{9}$/ 电子邮件看似简单,但实际上相当复杂,特别是考虑到IDN字符 例如,Пача@Мааааа.Пааа是有效的工作电子邮件地址。你可以用它给我发电子邮件:-)不幸的是,很多网站都没有验证它是有效的电子邮件地址 (?:(?:\r\n)?[\t])*(?:(?:(?:[^()@;:\\”\[\]\000-\031]+(?:(?:(?:\r\n)?[\t] )+|\Z |(?=

我是欧芹新手

我想验证一个字段是否是电子邮件地址或9位数字

html


登记表
使用正则表达式

9位数字是
/^\d{9}$/

电子邮件看似简单,但实际上相当复杂,特别是考虑到IDN字符

例如,
Пача@Мааааа.Пааа
是有效的工作电子邮件地址。你可以用它给我发电子邮件:-)不幸的是,很多网站都没有验证它是有效的电子邮件地址

(?:(?:\r\n)?[\t])*(?:(?:(?:[^()@;:\\”\[\]\000-\031]+(?:(?:(?:\r\n)?[\t]
)+|\Z |(?=[\[“()@,;:\\”\[\]]))124;“(?:[^\“\r\\]\\.\.\。。。(?:(?:\r\n)?[\t])*”(?:(?:)
\r\n)?[\t])*(?:\。(?:(?:\r\n)?[\t])*(?:[^()@;:\\”\[\]\000-\031]+(?:(?:)(
?:\r\n)?[\t])+\Z|(?=[\[“()@,;:\\”\[\]])))124;“(?:[^\“\r\\]\\\\.\。|(?:(?:\r\n)?[
\t] )*“(?:(?:(?:\r\n)?[\t])*)*@(?:(?:\r\n)?[\t])*(?:[^()@;:\\”\[\]\000-\0
31]+(?:(?:\r\n)?[\t])+\Z;(?=[\[“()@,;:\\”\[\]]))\[([^\[\]\r\\]\\\\\\\]\\\\.]*\
](?:(?:\r\n)?[\t])*(?:\。(?:(?:\r\n)?[\t])*(?:[^(),;:\”\[\]\000-\031]+
(?:(?:(?:\r\n)?[\t])+\Z;(?=[\[“()@,;:\\”\[\]]))\124\[([^\[\]\ r\\]\\\\\].*\])(?:
(?:\r\n)?[\t])*(?:[^()@,;:\\\”\[\]\000-\031]+(?:(?:(?:\r\n)?[\t])+\Z
|(?=[\[“()@,;:\\”\[\]])|“(?:[^\”\r\\]\\\.\.\124;(?:(?:\ r\n)?[\t])*”(?:(?::\r\n)
?[\t])*)*\(?:(?:\r\n)?[\t])*)|(?:[^()@;:\”\[\]\000-\031]+(?:(?)?
:(?:\r\n)?[\t])+\Z;(?=[\[“()@,;:\\”\[\]]))。“(?:[^\”\r\\]\\\\.\.\124;(?:(?::\ r\n)?
[\t])*“(?:(?:(?:\r\n)?[\t])*:(?:(?:\r\n)?[\t])*(?:(?:(?:[^()@;:\\”\[\]
\000-\031]+(?:(?:(?:\r\n)?[\t])+\Z;(?=[\[”()@;:\\“\[\]]))。“(?:[^\”\r\\]|
\\(?:(?:\r\n)?[\t])*(?:(?:\r\n)?[\t])*(?:\(?:(?:\r\n)?[\t])*(?:[^()
@,;:\“\[\]\000-\031]+(?:(?:(?:\r\n)?[\t])+\Z;(?=[\[“()@,;:\”))。”
(?:[^\”\r\\]\\。(?:(?:\r\n)?[\t])*“(?:(?:\r\n)?[\t])*)*@(?:(?:\r\n)?[\t]
)*(?:[^()@,;:\\”\[\]\000-\031]+(?:(?:(?:\r\n)?[\t])+\Z;(?=[\[”()@,;:\\
“\[\]])\\[([^\[\]\r\\]\\\].*\](?:(?:\r\n)?[\t])*(?:\(?:(?:\r\n)?[\t])*(?:。)?
:[^()@;:\\”\[\]\000-\031]+(?:(?:(?:\r\n)?[\t])+\124;\ Z;(?=[\[”),;:\”\[
\]]))|\[([^\[\]\r\\]\\\].*](?:(?:\r\n)?[\t])*)*(?:[^()@;:\”\[\]\000-
\031]+(?:(?:\r\n)?[\t])+\Z;(?=[\[“()@,;:\\\”\[\]]))。“(?:[^\\”\r\\\]\\\”|(
(?:(?:\r\n)?[\t])*“(?:(?:\r\n)?[\t])*\(?:(?:\r\n)?[\t])*)(?:,\s*(
?:(?:[^()@,;:\\”\[\]\000-\031]+(?:(?:\r\n)?[\t])+\Z;(?=[\[“()@,;:\\
“\[\]])\”(?:[^\”\r\\]\\\.(?:(?:\r\n)?[\t])*(?:(?:(?:\r\n)?[\t])*(?:\。(?:)(
(?:\r\n)?[\t])*(?:[^()@;:\\”\[\]\000-\031]+(?:(?:(?:\r\n)?[\t])+\Z;(?:)=[
\[“()@,;:\\\”\[\]])|“(?:[^\”\r\\]\\\.\124;(?:(?:\ r\n)?[\t])*”(?:(?:\r\n)?[\t
])*))*@(?:(?:\r\n)?[\t])*(?:[^()@;:\\”\[\]\000-\031]+(?:(?:(?:\r\n)?[\t
])+|\Z |(?=[\[“()@,;:\\\”\[\]]))\[([^\[\]\r\\]\\\\\].*](?:(?:\r\n)?[\t])*)(?
:\。(?:(?:\r\n)?[\t])*(?:[^()@;:\“\[\]\000-\031]+(?:(?:\r\n)?[\t])+|
\Z |(?=[\[“()@,;:\\”\[\]]))\[([^\[\]\r\\]\\\\].*](?:(?:\r\n)?[\t])*)*(?:
[^()@;:\\”\[\]\000-\031]+(?:(?:(?:\r\n)?[\t])+\124;\ Z;(?=[\[“()@;:\”)\[\
]]))|“(?:[^\”\r\\]\\.\。(?:(?:\r\n)?[\t])*”(?:(?:\r\n)?[\t])*)*\(?:(?:(?:\r\n)?[\t]):(
?:\r\n)?[\t])*)*)?;\s*)

没有内置的验证器来实现这一点,但是通过一点javascript,您可以轻松编写自己的自定义验证器

例如,使用v2.2的全新API,这里有一个可爱的方法,它依赖欧芹验证两个“虚拟”输入(未测试):

var dummeyemail=$('').parsley();
var dummynedigits=$('').parsley();
Parsley.addValidator('emailorid'{
validateString:函数(数据){
返回dummeymail.isValid(true,数据)| | dummynedigits.isValid(true,数据);
},
信息:{
en:“既不是九位数的数字,也不是有效的电子邮件地址”
}
};
然后,只需在您希望以这种方式验证的任何字段上使用
dataparsleyemailorid

(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:
\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(
?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ 
\t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\0
31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\
](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+
(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:
(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)
?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\
r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[
 \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)
?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t]
)*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
 \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*
)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)
*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+
|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r
\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:
\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t
]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031
]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](
?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?
:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?
:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?
:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?
[ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] 
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|
\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>
@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"
(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t]
)*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?
:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[
\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-
\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(
?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;
:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([
^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\"
.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\
]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\
[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\
r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] 
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]
|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \0
00-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\
.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,
;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?
:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*
(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[
^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]
]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)(?:,\s*(
?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(
?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[
\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t
])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t
])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?
:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|
\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:
[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\
]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)
?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["
()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)
?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>
@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[
 \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,
;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t]
)*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?
(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:
\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[
"()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])
*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])
+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\
.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(
?:\r\n)?[ \t])*))*)?;\s*)
var dummyEmail = $('<input data-parsley-type="email">').parsley();
var dummyNineDigits = $('<input data-parsley-pattern="\d{9}">').parsley();

Parsley.addValidator('emailorid', {
  validateString: function(data) {
    return dummyEmail.isValid(true, data) || dummyNineDigits.isValid(true, data);
  },
  messages: {
    en: "Is neither a nine digit long number nor a valid email address"
  }
};