2013-02-20 126 views
0

我遇到了一些遺留代碼,我們正在嘗試使用javascript正則表達式對字符串進行精確匹配。正則表達式中的/意味着什麼?

我想了解爲什麼他們使用/匹配字符串之前和之後。

例如

var match = thinger.match(/stringToMatch/); 

是什麼角色呢?

回答

3

/regex here/是一種在javascript中聲明正則表達式的方法。

/字符是正則表達式聲明的定界符,很像單引號或雙引號是字符串聲明的定界符。

查看MDN regular expression reference page的書面描述。一個正則表達式可以聲明以下兩種方式中的javascript:

var re = /match string here/i; 
var re = new RegExp("match string here", "i"); 

使用/regex here/方法的優點是:

  1. 您可以自由使用在比賽中的報價,而不必逃避他們,雖然你要逃避了reg一個/使用這種方法
  2. 這是打字更小,更緊湊的

的優點時,使用new RegExp("regex here")方法是:

  1. 您可以使用JavaScript表達式來動態構造字符串或正則表達式參數爲new RegExp("first" + foo + "whatever"),你不能與其他方法做。
  2. 你不必擔心逃避斜線
+0

很好的答案,+1。 @MedicineMan:斜線的技術術語是「分隔符」。 – iain 2013-02-20 17:10:58

+0

@iain - Thx。我在我的答案中添加了「分隔符」。 – jfriend00 2013-02-20 17:16:04

0

它們是指定正則表達式開始和結束的分隔符。您還可以附加/ i等運算符以獨立構建正則表達式。

+0

「操作員」通常被稱爲「標誌」 – 2013-02-20 17:11:35

1

它是Regular Expression的分隔符。就像您可以通過輸入'string'而不是調用它的構造函數new String('string')來創建一個新的基本字符串,因此您可以使用/regexp/而不是new RegExp('regexp')來指定RegExp。

相關問題