JavaScript /正则表达式:删除括号中的文本

jac*_*ore 83 javascript regex

是否有可能改变

Hello, this is Mike (example)
Run Code Online (Sandbox Code Playgroud)

Hello, this is Mike
Run Code Online (Sandbox Code Playgroud)

在正则表达式中使用JavaScript?

the*_*ejh 182

"Hello, this is Mike (example)".replace(/ *\([^)]*\) */g, "");
Run Code Online (Sandbox Code Playgroud)

结果:

"Hello, this is Mike"
Run Code Online (Sandbox Code Playgroud)

  • 请注意.replace()不会更改字符串本身,它只返回一个新字符串.因此,您仍然必须将变量设置为等于您更改的变量. (13认同)
  • 如果括号位于字符串的中间,则上面的正则表达式将删除它们周围的所有空格.这可能不太好. (2认同)

Tat*_*nen 24

var str = "Hello, this is Mike (example)";

alert(str.replace(/\s*\(.*?\)\s*/g, ''));
Run Code Online (Sandbox Code Playgroud)

这也将取代括号前后的多余空格.


Mam*_*mun 11

尝试 / \([\s\S]*?\)/g

在哪里

( 空格) 字面上匹配字符(空格)

\((字面上匹配字符

[\s\S]匹配任何字符(\s匹配任何空白字符并\S匹配任何非空白字符)

*? 零次和无限次之间的匹配

\))字面上匹配字符

g 全球匹配

代码示例:

var str = "Hello, this is Mike (example)";
str = str.replace(/ \([\s\S]*?\)/g, '');
console.log(str);
Run Code Online (Sandbox Code Playgroud)
.as-console-wrapper {top: 0}
Run Code Online (Sandbox Code Playgroud)


Mar*_*arc 7

如果您还需要删除嵌套括号内的文本,那么:

        var prevStr;
        do {
            prevStr = str;
            str = str.replace(/\([^\)\(]*\)/, "");
        } while (prevStr != str);
Run Code Online (Sandbox Code Playgroud)