1

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

我目前正在这样做,但是当我验证它与值不匹配时:

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

先感谢您!

4

2 回答 2

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

于 2013-04-16T23:26:27.160 回答
0

为什么你的代码不计算任何值?因为您使用了 typewise equal test ===。在 JavaScript 世界的动态类型中,它规定:测试这些值的类型是否相同,然后测试值是否相等。因此,当您尝试以这种方式测试某些文本框的值时,它们是字符串

typeof('a')

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

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

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

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

于 2013-04-20T07:22:44.920 回答