表单验证正则表达式和 DOM:在表单验证中实现正则表达式的最佳方法是什么?
我目前正在这样做,但是当我验证它与值不匹配时:
if(this.value.length > 0 && this.value === /^[a-zA-Z]+$/ );
先感谢您!
表单验证正则表达式和 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
};
为什么你的代码不计算任何值?因为您使用了 typewise equal test ===
。在 JavaScript 世界的动态类型中,它规定:测试这些值的类型是否相同,然后测试值是否相等。因此,当您尝试以这种方式测试某些文本框的值时,它们是字符串
typeof('a')
此代码将产生“字符串”,因为 'a' 确实是一个字符串。但:
typeof(/^[a-zA-Z]+$/)
这将产生“对象”。如您所见,当您尝试将字符串与对象进行比较时,类型相等性测试将始终返回 false。
那是为了测试对象及其值的相等性。对于正则表达式,请参见“bam”答案。