2012-03-26 75 views
1

我遇到了使用正則表達式獲取URL的大小的問題。我可以打印「EXP」的內容,但是當我試圖讓exp.length的警報失敗:使用正則表達式計算字符串的大小Javascript

var pattern = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;    
var exp = text.match(pattern); 

alert(exp.length); 

任何想法? 謝謝。

+2

text.length ??你想做什麼? – jbabey 2012-03-26 16:19:56

回答

0

如果,你正在做的是讓正則表達式匹配結果的長度,你會是這樣做的:

var pattern = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;    
var exp = text.match(pattern); 
if (exp) { 
    alert(exp[0].length); 
} 

.match()返回或者爲空(如果沒有匹配)或數組。在那個數組中,exp [0]將是找到的整個匹配。數組中的後續索引包含您匹配的所有子表達式(用匹配字符串中的圓括號表示)。

+0

非常感謝! – Alvaro 2012-03-26 17:11:52

0

string.match返回一個數組,而不是字符串,你可能想要做這樣的事情:

var pattern = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;    
var exp = text.match(pattern); 

alert(exp.join('').length); // alert a string, not an array 
相關問題