0
我有一個外部JS文件來驗證表單。這一切似乎都在起作用。不過,我添加了一個正則表達式來驗證密碼字段。只要我這樣做,並重新加載頁面,我以前的任何驗證工作都無法進行。即使是空格式,它也不會提交。我測試了它,當我包括變量時正則表達式JavaScript問題
var chk_name = ^(?=.{6,})(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]).*$;
它不會很好,它提交。但是一旦我把這個變量取出,它就開始工作,並再次檢查字段中的字符。我試着把這個變量放在函數中,並且也在函數之外,但是在這兩種情況下,它都停止了頁面的正確驗證。我給一些例子:
這工作沒有正則表達式:
function validation() {
var x=document.forms[0]["firstname"].value;
if (x==null || x=="") {
alert("First name must be filled out");
return false;
}
這不起作用(即形式與沒有字段甚至提交填寫)
var chk_name = ^(?=.{6,})(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]).*$;
function validation() {
var x=document.forms[0]["firstname"].value;
if (x==null || x=="") {
alert("First name must be filled out");
return false;
}
var x=document.forms[0]["password"].value;
if(x==null || x==""){
alert("Choose a password at least 6 characters long including 1 upper case letter, 1 lower case letter and 1 number");
return false;
} else if(!chk_name.test(x)){
alert("Choose a password at least 6 characters long including 1 upper case letter, 1 lower case letter and 1 number");
return false;
}
這也沒有按「T工作:
function validation() {
var x=document.forms[0]["firstname"].value;
if (x==null || x=="") {
alert("First name must be filled out");
return false;
}
var x=document.forms[0]["password"].value;
var chk_name = ^(?=.{6,})(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]).*$;
if(x==null || x==""){
alert("Choose a password at least 6 characters long including 1 upper case letter, 1 lower case letter and 1 number");
return false;
} else if(!chk_name.test(x)){
alert("Choose a password at least 6 characters long including 1 upper case letter, 1 lower case letter and 1 number");
return false;
}
也不會覺得傻..謝謝你的工作:) –
很高興它幫助你;) –
有一點需要注意,你可以用文字符號'/ [az] /'或通過構造函數'new RegExp('[az]')指定RegExp '改性劑')'。決定使用哪一個是基於你對模式的瞭解。如果你知道它是不斷使用'literal',如果模式將是動態的使用'constructor'。 –