jQuery中的正则expression式字段validation

在jQuery中,是否有一个函数/插件,我可以用来匹配一个string中给定的正则expression式?

例如,在电子邮件input框中,我收到一个电子邮件地址,并且想要查看它是否使用正确的格式。 我应该使用什么jQuery函数来查看我的validation正则expression式是否与input匹配?

我已经search了一个解决scheme,但我一直无法find任何东西。

我相信这是事实:

http://bassistance.de/jquery-plugins/jquery-plugin-validation/

它有内置的模式,如url和电子邮件地址,我想你也可以使用自己的模式。

如果你想search一些基于正则expression式的元素,你可以使用filterfunction。 例如,假设您想要确保在所有的input框中,用户只input了数字,那么我们就find所有不匹配的input并加亮显示。

 $("input:text") .filter(function() { return this.value.match(/[^\d]/); }) .addClass("inputError") ; 

当然,如果只是这样的话,你可以使用表单validation插件,但是这个方法可以应用到你喜欢的任何types的元素。 另一个例子来显示我的意思:find所有元素的id匹配/[az]+_\d+/

 $("[id]").filter(function() { return this.id.match(/[az]+_\d+/); }); 

我正在使用jQuery和JavaScript,它适用于我:

 var rege = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; if(rege.test($('#uemail').val())){ //do something } 

除非您正在寻找特定的东西,否则您可以使用正则expression式使用string进行正则expression式匹配。

例如,你可以使用类似这样的string进行匹配…

 var phrase = "This is a phrase"; phrase = phrase.replace(/is/i, "is not"); alert(phrase); 

除了正则expression式匹配之外,还有其他一些你正在寻找的东西吗?

我的代码:

 $("input.numeric").keypress(function(e) { /* pour les champs qui ne prennent que du numeric en entrée */ var key = e.charCode || e.keyCode || 0; var keychar = String.fromCharCode(key); /*alert("keychar:"+keychar + " \n charCode:" + e.charCode + " \n key:" +key);*/ if ( ((key == 8 || key == 9 || key == 46 || key == 35 || key == 36 || (key >= 37 && key <= 40)) && e.charCode==0) /* backspace, end, begin, top, bottom, right, left, del, tab */ || (key >= 48 && key <= 57) ) { /* 0-9 */ return; } else { e.preventDefault(); } }); 

来自jquery.validate.js(by joern),由Scott Gonzalez提供: http ://projects.scottsplayground.com/email_address_validation/

 /^((([az]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([az]|\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)))@((([az]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([az]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([az]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([az]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([az]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([az]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([az]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([az]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i 

如果您使用的是MVC Razor,请确保将@@翻倍:

  /^((([az]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([az]|\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)))@@((([az]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([az]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([az]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([az]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([az]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([az]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([az]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([az]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i 

饿意大利面条?