2012-06-06 76 views

回答

8

解決方案

根據你原來的問題,這會做:

var str2 = "This is a string (3444343) with numbers."; 
var patt2 = /\((.*?)\)/; 

alert(str2.match(patt2)[1]); 

一個更新的jsfiddle例如:http://jsfiddle.net/S99jd/

您的輸入字符串,它提醒3444343(不含括號)。

一些解釋

您的片段需要:

  • 加正向斜槓/創建正則表達式,
  • 通過選擇正確的匹配組(在這裏,在指數1提醒,如match()返回一個元素數組,其中索引0處的元素是完全匹配,並且以下索引對應於匹配組)。

對於更多的信息,有助於對在JavaScript/ECMAScript中使用正則表達式,請訪問:http://www.regular-expressions.info/javascript.html

+0

答案很好,但我只能提醒號碼。沒有括號()。 –

+0

@JusticeGödelConder:是的,如果你運行的是我給你的東西,它只會提醒數字。嘗試一下。 – haylem

+0

@JusticeGödelConder:這裏有一個jsfidde的鏈接,正是我上面寫的。它僅提醒數字,正如您所問:http://jsfiddle.net/S99jd/ – haylem

2

您需要附上您的正則表達式字面正斜槓:

var patt2 = /\((.*?)\)/;

Here's the updated jsFiddle.

+0

最好!非常感謝。 –

+0

答案很好,但我只能提醒數字。沒有括號()。 –

-1

正如其他人指出,這是更好,如果你使用斜線創建正則表達式,但如果你想知道如何解決你的方法:

var patt2 = '(\\(\\d+\\))'; 

var patt2 = '([(]\\d+[)])'; 
+0

答案很好,但我只能提醒數字。沒有括號()。 –

+1

@JusticeGödelConder - 只是在捕獲區域之外移動括號:'\\((\\ d +)\\)'或'[(](\\ d +)[)]' – DVK

+0

爲什麼選擇down-vote? – DVK

相關問題