2014-01-12 99 views
1

我正在通過源代碼查看base.js, 其中有一個對象通過似乎是一個正則表達式引用?Javascript:Funny正則表達式對象名稱?

if (ancestor && (typeof value == "function") && // overriding a method? 

    // the valueOf() comparison is to avoid circular references 
    (!ancestor.valueOf || ancestor.valueOf() != value.valueOf()) && 
    /\bbase\b/.test(value)) { 

這就是「/ \ bbase \ b /」對象。

這是什麼? 在我的ide我的搜索引擎將它視爲一個正則表達式? 谷歌搜索不呈現結果。

+2

是的,這是一個正則表達式。 \ b表示單詞邊界,就像一個空格。 –

+0

請參閱[正則表達式中的單詞邊界是什麼?](http://stackoverflow.com/questions/1324676/what-is-a-word-boundary-in-regexes)以獲取更多信息。 – Alex

+0

JavaScript解釋器如何使用它?/它是如何工作的? –

回答

1

是的,在JavaScript中,/.../劃定regular expression字面值。文字內的字符是模式本身。這大致相當於:

new RegExp("\\bbase\\b").test(value) 

注意字符串文字中("...")以上,需要進行轉義的\字符,但在正則表達式字面他們沒有。這使得使用文字書寫正則表達式模式變得更加自然,這是正則表達式文字被包含在語言中的原因之一。

\b匹配任何單詞邊界,其中前一個字符是單詞字符,下一個字符不是,反之亦然。

+0

啊,我明白了,謝謝。 –