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