通过replace()方法将年份放在括号中

时间:2017-09-24 12:34:25

标签: javascript replace

我有这种类型的输入,例如:

Star Wars 1977

输出应为:

Star Wars (1977)

如何使用replace()方法获取它?

2 个答案:

答案 0 :(得分: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);




答案 1 :(得分:0)

或者......如果您知道要替换的内容:

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

我只是觉得我提到这个(即使正则表达式是要走的路),因为我偶然发现了正常的字符串替换标记(实际上是通过一个bug;)。)。