Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery中的正则表达式字段验证_Jquery_Regex - Fatal编程技术网

jQuery中的正则表达式字段验证

jQuery中的正则表达式字段验证,jquery,regex,Jquery,Regex,在jQuery中,是否有一个函数/插件可以用来匹配字符串中给定的正则表达式 例如,在一个电子邮件输入框中,我得到一个电子邮件地址,并想看看它的格式是否正确。我应该使用什么jQuery函数来查看验证正则表达式是否与输入匹配 我在谷歌上搜索了一个解决方案,但没有找到任何解决方案。我相信这可以解决问题: 它为URL和电子邮件地址等内容提供了内置模式,我认为您也可以使用自己的模式。除非您正在寻找特定的内容,否则您可以使用带字符串的常规Javascript进行正则表达式匹配 例如,您可以通过以下方式使用

在jQuery中,是否有一个函数/插件可以用来匹配字符串中给定的正则表达式

例如,在一个电子邮件输入框中,我得到一个电子邮件地址,并想看看它的格式是否正确。我应该使用什么jQuery函数来查看验证正则表达式是否与输入匹配


我在谷歌上搜索了一个解决方案,但没有找到任何解决方案。

我相信这可以解决问题:


它为URL和电子邮件地址等内容提供了内置模式,我认为您也可以使用自己的模式。

除非您正在寻找特定的内容,否则您可以使用带字符串的常规Javascript进行正则表达式匹配

例如,您可以通过以下方式使用字符串进行匹配

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

除了常规的正则表达式匹配之外,您还需要什么吗?

如果您想基于正则表达式搜索某些元素,可以使用
过滤器
函数。例如,假设您希望确保在所有输入框中,用户只输入了数字,那么让我们查找所有不匹配的输入并突出显示它们

$("input:text")
    .filter(function() {
        return this.value.match(/[^\d]/);
    })
    .addClass("inputError")
;
当然,如果只是这样,您可以使用表单验证插件,但是这种方法可以应用于您喜欢的任何类型的元素。另一个例子显示了我的意思:查找其
id
匹配
/[a-z]+\d+/

$("[id]").filter(function() {
    return this.id.match(/[a-z]+_\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 }
我的代码:

$("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();
            }
        });
$(“input.numeric”).keypress(函数(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);
/*警报(“keychar:+keychar+”\n charCode:+e.charCode+”\n key:+key)*/
如果((key==8 | | key==9 | | | key==46 | | key==35 | | | key==36 | |)(key>=37&&key=48&&key来自jquery.validate.js(joern),由Scott Gonzalez提供:

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

 /^((([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

想吃意大利面条吗?

一个简单的例子:

$('#some_input_id').attr('oninput',
"this.value=this.value.replace(/[^0-9A-Za-z\s_-]/g,'');")

这意味着所有与正则表达式不匹配的东西都将化为乌有,也就是说,
'

,但是一般正则表达式匹配呢?可能类似于在某些文本中搜索正则表达式等。我的意思是,你可以一直直接使用javascript的正则表达式,如果你只需要这么做的话……是我,还是JQUERY有一个糟糕的网站?我看不懂找到如何使用或下载这个东西。您的示例将返回“this not is a phrase”!:-)有趣的提示-我从未实际运行过代码,但您是对的-它匹配第一个“is”,它实际上位于单词“this”的末尾-因为它忽略了字符串的其余部分,所以它对第二个“is”不做任何事情。非常有趣:)-1............好吧,只是开玩笑,我实际上对你的答案投了更高的票:)稍加一点,你的电子邮件地址中没有“+”:var rege=/^([a-Za-z0-9\+\.])+\@([a-Za-z0-9\\.])([a-Za z]{2,4}$/;我不是说我的是完美的,我只是说你的不适合我的电子邮件:-)这个问题的标题有点误导人。它可能更适合表示这与表单输入值匹配有关。我给nickf的答案加了+1,因为这正是我想要的。这不是使用正则表达式
$('#some_input_id').attr('oninput',
"this.value=this.value.replace(/[^0-9A-Za-z\s_-]/g,'');")