2012-08-09 51 views
1

我有這樣的:當我在正則表達式中放置空格時,爲什麼我的Javascript測試()函數失敗?

var regex=/[a-z\d,]+$/i; 

if (!/[a-z\d,]+$/i.test(user_input)){ 
     alert('format is invalid'); 
} 

這個工作,但是當我想在正則表達式的「」字符(空格),函數失敗或不觸發if語句裏面的塊。

var regex=/[a-z\d ,]+$/i; 

我在做什麼錯? 預先感謝

+3

你爲什麼定義正則表達式兩次? – Dan 2012-08-09 18:05:21

+0

什麼是對它的測試? – 2012-08-09 18:06:01

+0

嗨。不,我不只是把第一個替換成第二個,當它失敗時 – eric01 2012-08-09 18:06:06

回答

3

添加啓動模式^

/^[a-z\d ,]+$/i.test(user_input) 

否則你,如果你在該行的結尾匹配只能測試。 試試這裏:regexpal

+0

是的!這是問題所在。非常感謝你的幫助。問候 – eric01 2012-08-09 18:23:48

2

空白由\s表示:

var regex=/[a-z\d\s,]+$/i; 
+1

您可以在正則表達式中使用文字空間。 '\ s'還包括標籤(和換行符,我認爲)。 – 2012-08-09 18:06:27

+0

Rocket是對的,'\ s'包含'\ n','\ r'和'\ t'字符以及空格。 – 2012-08-09 18:11:47

+0

@火箭,沒錯。我看了一下這個規範,它包含了新的行。 – devundef 2012-08-09 19:22:35

1

如上告訴,空白是通過 '\ S' 表示。

var regex=/[a-z\d\s,]+$/i; 

更多的澄清,請訪問以下網址:
http://www.javascripter.net/faq/regularexpressionsyntax.htm

+0

您可以在正則表達式中使用文字空間。 '\ s'還包括標籤(和換行符,我認爲)。 – 2012-08-09 18:10:22

相關問題