2013-06-13 125 views

回答

3

如果你的意思是你想捕捉的ID,x,y部分,相信這是可能的:

var str = "ADD[ID,x,y];"; 
var match = /\[([^\]]+)\]/.exec(str); 
if (match) { 
    console.log(match[1]); // "ID,x,y" 
} 

的表達是非常簡單的,但它看起來複雜。所以:

  • /.../是一個正則表達式文字。
  • \[是字面的[字符(因爲[在正則表達式中是特殊的,所以我們必須將其轉義)。
  • (....)是一個捕獲組。我們用它來捕捉括號內的文字。
  • [^\]]是一個字符類,意思是「任何不是]字符」。我們必須在內部逃脫],否則它會終止字符類。
  • +的意思是「一個或多個以前的事情」。
  • 當然,\]是文字結尾]字符。
+0

hi @ T.J.Crowder 我試過這段代碼:var re =/\ bn \ [n \] n \; \ b/i; 正如我所知\ b是用於檢測字符串的開始和結束。但是輸入:「n [n] n;」不允許。請告訴我爲什麼? –

+1

當我將/ \ bn [n] n \; \ b/i更改爲/ \ bn [n] n \// i。輸入是允許的。我的常規字符串會發生什麼? –

+1

@TunaTan:'\ b'不檢測字符串的開始和結束。它匹配*字*邊界。 '^'是字符串的開頭,'$'是字符串的結尾。但是,上面答案中的表達與你在問題中給出的例子相匹配,你爲什麼要朝不同的方向發展?如果你想要匹配不同的輸入,爲什麼不把這個輸入放在你的問題中呢? –