-4

我最近学习了这段代码,但是这段代码没有像预期的那样工作。它用于表单验证

function username_validation(name){
    var valid_name = /^[a-zA-Z0-9_]{5,30}$/;
    if(!valid_name.test(name)) 
     {         
         return false; 
     } 
     else 
     { 
         return true;
     } 


}
4

1 回答 1

1

您必须将此函数挂钩到事件侦听器。像 :

<form onsubmit="username_validation(this.usernameTextfield.value);">

因此,每次提交特定表单时都会触发此功能。你的功能没有问题。

该行:

var valid_name = /^[a-zA-Z0-9_]{5,30}$/;

创建一个 RegExp 对象。

然后 :

valid_name.test(name)

检查name数学是否与valid_name模式。RegExp 有一个布尔方法,如果给定的字符串与 RegExp 模式匹配,则test(s)返回 trues

一个更好的写法是:

function validate(name) {
    var r=/^[a-zA-Z0-9_]{5,30}$/;
    return r.test(name);
}

希望能帮助到你...

于 2012-12-17T15:34:00.787 回答