我想知道是否有人可以建议从JavaScript字符串中删除括号(及其内容)和前一个空格的方法?
我使用的是iTunes XML Feed,很多电影都包含了这一年,或者"扩展版"等
我想剥去这些,只是有一个很好的干净的电影名称。
以下是一些字符串现在的示例:
Midnight Special(2016)
星期五(1995年)
在剪裁之后,我希望它看起来像。
午夜特惠
星期五
弦的长度可能会有所不同,否则我会修剪一定的长度。非常感谢提前
西蒙
答案 0 :(得分:1)
使用 String#replace
方法
str.replace(/\s*\(.*?\)$/gm, '')
var res = `Midnight Special (2016)
Friday (1995)`.replace(/\s*\(.+?\)$/gm, '')
console.log(res)
答案 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
陷阱:请注意,此正则表达式会将aa (b) and cc (d)
替换为aa
。
如果您只想删除最后一个括号,请使用/\s*\([^\(]*\)\s*$/gm
- 但aa (b(c))
会因aa (b
替换而失败。
仅使用正则表达式无法进行平衡括号匹配。