2013-04-16 75 views
7

看起來很簡單,但無法弄清楚爲什麼這個JavaScript代碼不工作返回假,當期待真實) - 我猜它必須做一些與轉義字符?有人可以幫我寫一個JS塊,如果空白出現會返回true。正則表達式來檢查空格是否存在?

var inValid = new RegExp("[\s]"); 
var value = "test space"; 
var k = inValid.test(value); 
alert(k); 

回答

15

你不需要括號,你需要逃跑反斜槓(如果使用字符串表單)和內置的regex語法更容易,因爲在使用內置正則表達式語法時不必反斜槓。

var inValid = /\s/; 
var value = "test space"; 
var k = inValid.test(value); 
alert(k); 
3

你需要的,如果你是從一個字符串創建RegExp對象轉義​​反斜線:

var inValid = new RegExp("[\\s]"); 

或者你可以使用以下命令:

var inValid = /\s/; 

這將使用正則表達式的字面意義,所以不需要轉義反斜槓,並且這裏不需要字符類,所以我也放棄了方括號。

3

你需要一個雙轉義字符:

一爲「S」,一個是「\」本身:

var inValid = new RegExp("[\\s]"); 
3

如果你想匹配東西那裏,但沒有空格:

alert(/^\S+$/.test(value));