2011-11-27 44 views
0

我嘗試做如下簡單的正則表達式匹配一個逗號:的Javascript正則表達式增加對結果

var page = "<title>Hello, World!</title>"; 
var pattern = /<title>(.*?)<\/title>/i; 
var title = pattern.exec(page); 
document.write(title); 

出於某種原因,結果如下:

,Hello, World! 

任何想法,爲什麼逗號被添加到開始?

回答

4

pattern.exec()返回數組。返回數組中的第一項是整個匹配項。返回數組中的第二項是第一個匹配的組。您在兩個元素的數組上調用document.write(),而不是一個字符串。在許多情況下輸出時,數組條目由逗號分隔。您看不到數組中的第一項,因爲它是不可見的HTML <title>Hello, World!</title>。然後,在該元素和下一個元素之間有一個逗號,這是您想要的文本。

您的代碼也許應該是這樣的:

var page = "<title>Hello, World!</title>"; 
var pattern = /<title>(.*?)<\/title>/i; 
var match = pattern.exec(page); 
if (match) { 
    document.write(match[1]); 
} 

你可以看到它在這裏工作:http://jsfiddle.net/jfriend00/BQ33Q/