2013-05-20 90 views
51

我沒有太多的JavaScript經驗,但我試圖創建一個標記系統,而不是使用@#,將使用/匹配一個正則表達式的正斜槓

var start = /#/ig; // @ Match 

var word = /#(\w+)/ig; //@abc Match 

我怎麼能使用/,而不是#。我試過var slash = '/',並加入+ slash +,但是失敗了。

+1

請更改標題。你真的想做什麼?看完你的問題後,我還是不知道。 – OptimusCrime

+0

我不知道我明白。 –

+2

http://meta.stackexchange.com/a/177767/178816 –

回答

71

逃脫它你可以逃脫它這樣。

/\//ig; // Matches/

或者只是使用的indexOf

if(str.indexOf("/") > -1) 
+0

謝謝你本,我也嘗試過,但我在最後加了另一個\。 – iBrazilian2

14

您需要用\轉義/

/\//ig // matches/
4

如果你想使用/你需要一個\

var word = /\/(\w+)/ig; 
6

在正則表達式,「/」是一種特殊字符,需要轉義(通過放置一個\因此否定任何特殊功能,它可能之前AKA標記服務)。

這裏有您需要什麼:

var word = /\/(\w+)/ig; // /abc Match 

閱讀上的正則表達式的特殊字符的位置:http://www.regular-expressions.info/characters.html

+6

「/」不是正則表達式中的特殊字符。然而,它是JavaScript中的一個特殊字符,用於分隔正則表達式開始和結束的位置。 – sokkyoku

0

我遇到有關前述,當提取文本的\/分隔的兩個問題,並找到了該解決方案適用於兩者,除了使用new RegExp之外,它需要在開始時使用\\\\。這些調查結果在Chrome和IE11中。

正則表達式

/\\(.*)\//g 

不起作用。儘管存在轉義字符,我認爲//被解釋爲評論的開始。正則表達式(在我的情況下同樣有效,雖然不是一般)

/\b/\\(.*)\/\b/g 

也不起作用。我認爲第二個/終止正則表達式,儘管轉義字符。

對我來說,什麼是代表/\x2F,這是/的十六進制表示形式。我認爲這比使用new RegExp更有效率和可以理解,但當然需要註釋來標識十六進制代碼。

0

正斜槓特殊字符的話,你有正斜槓前添加一個反斜槓,使其工作

$patterm = "/[0-9]{2}+(?:-|.|\/)+[a-zA-Z]{3}+(?:-|.|\/)+[0-9]{4}/"; 

其中/表示搜索/ 這樣你

0

您也可以工作圍繞特殊JS處理正斜槓,將其包含在字符組中,如下所示:

const start = /[/]/g; 
"/dev/null".match(start)  // => ["/", "/"] 

const word = /[/](\w+)/ig; 
"/dev/null".match(word)  // => ["/dev", "/null"] 
相關問題