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

时间:2013-04-16 23:23:53

标签: javascript regex forms validation dom

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

我目前正在这样做,但当我确认它与值不匹配时:

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

提前谢谢你!

2 个答案:

答案 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
     };

请参阅http://www.w3schools.com/jsref/jsref_regexp_test.asp

答案 1 :(得分:0)

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

typeof('a')

此代码将产生“string”,因为'a'确实是一个字符串。但是:

typeof(/^[a-zA-Z]+$/)

这将产生“对象”。如您所见,当您尝试将字符串与对象进行比较时,类型相等测试将始终返回false。

用于测试对象及其值的相等性。对于正则表达式,请参阅'bam'回答。