Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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
Javascript 表单验证正则表达式和DOM:在表单验证中实现正则表达式的最佳方法是什么_Javascript_Regex_Forms_Validation_Dom - Fatal编程技术网

Javascript 表单验证正则表达式和DOM:在表单验证中实现正则表达式的最佳方法是什么

Javascript 表单验证正则表达式和DOM:在表单验证中实现正则表达式的最佳方法是什么,javascript,regex,forms,validation,dom,Javascript,Regex,Forms,Validation,Dom,表单验证正则表达式和DOM: 在表单验证中实现正则表达式的最佳方法是什么 我目前正在执行此操作,但当我验证时,它与值不匹配: if(this.value.length > 0 && this.value === /^[a-zA-Z]+$/ ); 提前谢谢你 您需要使用test()方法 var patt = /^[a-zA-Z]+$/; //define your RegEx if(this.value.length > 0 && patt.

表单验证正则表达式和DOM: 在表单验证中实现正则表达式的最佳方法是什么

我目前正在执行此操作,但当我验证时,它与值不匹配:

if(this.value.length > 0 && this.value === /^[a-zA-Z]+$/ );

提前谢谢你

您需要使用
test()
方法

var patt = /^[a-zA-Z]+$/; //define your RegEx

    if(this.value.length > 0 && patt.test(this.value)){ //check if this.value is longer than one character AND matches your RegEx
           //do something
     };

请参见您需要使用
test()
方法

var patt = /^[a-zA-Z]+$/; //define your RegEx

    if(this.value.length > 0 && patt.test(this.value)){ //check if this.value is longer than one character AND matches your RegEx
           //do something
     };

请参见

为什么代码不匹配任何值? 因为您使用了类型相等性测试
==
。在JavaScript的动态类型世界中,它表示为:测试这些值的类型是否相同,然后测试它们是否相等。 因此,当您试图以这种方式测试一些文本框的值时,这些文本框是字符串

typeof('a')
此代码将生成“string”,因为“a”实际上是一个字符串。但是:

typeof(/^[a-zA-Z]+$/)
这将产生“对象”。正如您所看到的,当您尝试将字符串与对象进行比较时,类型相等性测试将始终返回false


这是为了测试对象及其值的相等性。有关正则表达式,请参见“bam”答案。

为什么代码不匹配任何值? 因为您使用了类型相等性测试
==
。在JavaScript的动态类型世界中,它表示为:测试这些值的类型是否相同,然后测试它们是否相等。 因此,当您试图以这种方式测试一些文本框的值时,这些文本框是字符串

typeof('a')
此代码将生成“string”,因为“a”实际上是一个字符串。但是:

typeof(/^[a-zA-Z]+$/)
这将产生“对象”。正如您所看到的,当您尝试将字符串与对象进行比较时,类型相等性测试将始终返回false


这是为了测试对象及其值的相等性。有关正则表达式,请参见“bam”答案。

我尝试使用match(),但一旦启动函数,输入仍然无法匹配正则表达式。当只有(this.value.length>0)时,我成功了,但当我尝试匹配时,会出现错误。我已更新了答案。
test()
方法将返回true或false。因此,在本例中,如果它与正则表达式匹配,那么if条件将为true,代码应该执行。我以前使用
match()
方法的回答是错误的,因为match将以数组形式返回匹配值,而不是布尔值,所以它不会工作……非常感谢,您的编辑帮助很大!我想提高你的投票率,但我还没有足够的声誉。我尝试使用match(),但一旦启动我的函数,输入仍然无法匹配正则表达式。当只有(this.value.length>0)时,我成功了,但当我尝试匹配时,会出现错误。我已更新了答案。
test()
方法将返回true或false。因此,在本例中,如果它与正则表达式匹配,那么if条件将为true,代码应该执行。我以前使用
match()
方法的回答是错误的,因为match将以数组形式返回匹配值,而不是布尔值,所以它不会工作……非常感谢,您的编辑帮助很大!我想增加你的投票,但我还没有足够的声誉。很抱歉,我不太懂javascript和堆栈溢出,我的函数会检查onBlur,看看表单输入是否匹配长度,字符是否匹配第一个名字的正则表达式。很抱歉,我不太懂javascript和堆栈溢出,my函数检查onBlur表单输入是否与长度匹配,字符是否与第一个名称的正则表达式匹配。