2017-09-24 74 views
0

我有這種類型的輸入,例如把一年括號:
由replace()方法

Star Wars 1977 

輸出應該是:

Star Wars (1977) 

它使用我怎麼replace()方法?

回答

3

您可以使用正則表達式來一年匹配,則替換:

var str = "Star Wars 1977"; 
 
str = str.replace(/(\d{4})/, '($1)'); // $1 is the first match, which is the year 
 
console.log(str);

如果你處理的電影,還有那些有多年在他們的頭銜,所以

var str = "2001: A Space Odyssey 1968"; 
 
str = str.replace(/(\d{4})$/, '($1)'); // $1 is the first match, which is the year 
 
console.log(str);
012:,在標題當年不匹配,您可以只在字符串的結尾捕捉一年

+1

請注意,這可能會對其標題有一年的電影產生奇怪的影響,例如'2001:A Space Odyssey'。您可以通過強制正則表達式在字符串末尾匹配來減少它:'/(\ d {4})$ /' –

+0

@DuncanThacker在我寫這個問題的更新並使用確切的電影時你用作例子,你也在寫這個嗎?哇。 –

+0

我們很清楚:D –

0

或者......如果你知道你要替換的內容:

'Star Wars 1977'.replace('1977','($&)')

我只是想我會提到這一點(雖然正則表達式是要走的路),因爲我發現了正常的字符串意外地替換了令牌(實際上是通過一個bug;))。

相關問題