使用JavaScript删除字符串末尾的括号中的内容

时间:2016-06-13 13:29:20

标签: javascript

我想知道是否有人可以建议从JavaScript字符串中删除括号(及其内容)和前一个空格的方法?

我使用的是iTunes XML Feed,很多电影都包含了这一年,或者"扩展版"等

我想剥去这些,只是有一个很好的干净的电影名称。

以下是一些字符串现在的示例:

Midnight Special(2016)

星期五(1995年)

在剪裁之后,我希望它看起来像。

午夜特惠

星期五

弦的长度可能会有所不同,否则我会修剪一定的长度。非常感谢提前

西蒙

2 个答案:

答案 0 :(得分:1)

使用 String#replace 方法

str.replace(/\s*\(.*?\)$/gm, '')

var res = `Midnight Special (2016)

Friday (1995)`.replace(/\s*\(.+?\)$/gm, '')

console.log(res)

Regex explanation here.

Regular expression visualization

答案 1 :(得分:1)

您可以将String.replace()与正则表达式/\s*\(.*\)\s*$/gm一起使用:

"aaa (bb)".replace(/\s*\(.*\)\s*$/gm, ""); // "aaa"



var str = "aaa (bb)\ncccc \nddd ()";

console.log(str.replace(/\s*\(.*\)\s*$/gm, "")); // "aaa\ncccc\nddd"




说明:请参阅https://regex101.com/r/dC0aP7/2

Regular expression visualization

陷阱:请注意,此正则表达式会将aa (b) and cc (d)替换为aa

如果您只想删除最后一个括号,请使用/\s*\([^\(]*\)\s*$/gm - 但aa (b(c))会因aa (b替换而失败。

仅使用正则表达式无法进行平衡括号匹配。