2011-08-26 102 views
0

我遇到了正則表達式的問題。我有一個這樣的字符串:正則表達式刪除子字符串和x後的所有字符

/Date(-62135596800000+0100)/ 

我想去除一切,直到幷包括+符號後左括號和一切,到目前爲止,我想出了這一點:

[\/Date(]|\+(.*) 

其中有兩個問題:1)它是使用像這樣當更換匹配單個字符/,d,一個等等,而不是匹配子串「/日期(」和2)它拋出和錯誤:

function returnNewString(oldString) { 
    var re = [\/Date(]|+(.*), 
    output = oldString.replace(re,''); 
    return output; 
} 

我很喜歡新REG-EX因此上述可能是錯在一切可能的方式,因此任何幫助將apreciated,謝謝

+0

JavaScript正則表達式以斜槓('/.../')包圍,除非您使用'RegExp()'構造函數,它需要一個字符串('「...」')。你不能只在腳本中間輸入隨機字符; -P –

回答

1

假設你的文字總是會這樣,你可以使用這個:

function returnNewString(oldString) { 
    return oldString.match(/[-\d]+/); 
} 

如果,在另一方面,你可能有一個字符串像/Date(+62135596800000+0100)/或類似/Date(62135596800000+0100)/,那麼你應該這樣做:

function returnNewString(oldString) { 
    return oldString.match(/(?:-|\+)?\d+/); 
} 
0
'/Date(-62135596800000+0100)/'.replace(/\/Date\((.*?)\+.*\)\//, '$1'); 

說明:轉義括號中的PA匹配rt字符串中的左括號和加號之間的整數字符串($1)被替換爲整個字符串。

0

/Date((-?\d+)+\d+)/ 組1將包含您的字符串的所需部分。

例如,如果輸入是 「/日期(-62135596800000 + 0100)/」,則

組0(整個匹配)將是 「/日期(-62135596800000 + 0100)/」 和
集團 1將是-62135596800000

相關問題