2011-12-28 56 views
0

我有一個驗證用戶名的腳本。當用戶輸入沒有空格的名字時,它可以正常工作。如果用戶用空格輸入名字(名字,姓氏,姓氏等),那麼它不起作用。我試圖使用\s來捕捉'空格'字符,但它不起作用。使用Javascript正則表達式驗證HTML表單

我的腳本是:

var name=document.forms["newform"]["fullname"].value; //get the name from HTML form 
var charpos = name.search("[^A-Za-z\s]"); 
if (name.length <= 0 || name.length>=50 || charpos >= 0) 
{ 
    alert('wrong.'); 
} 
else 
{ 
    alert('correct'); 
} 

輸入1:AFGH

輸出1:正確

輸入2:ABCD EFGH

輸出2:錯誤

當給出Input2時,charpos的值爲'5'。

回答

1

字符串文字正在吞嚥\

你應該使用文字正則表達式:

name.search(/[^A-Za-z\s]/); 
+0

謝謝SLaks。有效!!你能解釋一下字符串文字是如何吞嚥'\'的嗎?吞嚥是什麼意思?再次感謝。 – 2011-12-28 20:38:01

+1

@iSumitG,'\'是常規字符串中的一個轉義字符,如果您希望自己的字符出現在字符串中,則必須將其轉義,例如''[^ A-Za-z \ s]「' 。 – Qtax 2011-12-28 20:57:27