替换方法的正则表达式

时间:2013-12-04 15:09:48

标签: javascript regex

我正在尝试在()中提取给定标题的年份

示例:

“这是40(2012)”

返回:“这是40”

title = mTitle.replace(/[^a-zA-Z:\s]/g, '');

除了在括号前面还有数字的标题外,这种方式有效。 我也想要获得这一年。

year = mTitle.replace(/\D+/g, '');

我在整理它时遇到了麻烦。

2 个答案:

答案 0 :(得分:4)

删除括号括起的尾随年份(数字):

> "This is 40 (2012)".replace(/\(\d+\)$/, '')
"This is 40 "

要在年份之前删除空格:

> "This is 40 (2012)".replace(/\s*\(\d+\)$/, '')
"This is 40"

答案 1 :(得分:0)

您可以使用以下选项之一:

var year = 'This is 40 (2012)'.slice(-5, -1);
var year = 'This is 40 (2012)'.match(/\d+(?=.$)/)[0];
// regex : one or more digits followed by any char + end of string
var year = 'This is 40 (2012)'.replace(/^.*?(\d+).$/, '$1');
// regex : zero or more chars + one or more digits ($1) + any char

文档:slicematchreplaceregular expressions