猿问

JS提取括号外的所有文字

我需要提取方括号/圆括号外的文本。

"WALL COLOR (IS HERE) [SHERWIN-WILLIAMS]"

预期的结果是"WALL COLOR"和不是"WALL COLOR "

我试过

"WALL COLOR (IS HERE) [SHERWIN-WILLIAMS]".match(/\[(.*?)\]/)[0]

是否需要 [0] 来获取字符串而不是数组的结果。


千巷猫影
浏览 316回答 1
1回答

慕田峪9158850

假设你的括号是平衡的并且没有转义等,那么通过.replace. 您可以使用此.replace方法删除所有两边都被可选空格包围的[...]字符串。(...)str = str.replace( /\s*(?:\[[^\]]*\]|\([^)]*\))\s*/g, "" ) //=> "WALL COLOR"正则表达式演示正则表达式详细信息:\s*: 匹配0个或多个空格(?:: 启动非捕获组\[[^\]]*\]: 匹配文本[...]|: 或者\([^)]*\): 匹配文本(...)): 结束非捕获组\s*: 匹配0个或多个空格PS:如果你想在你的输入中允许转义括号,WALL COLOR (IS \(escaped\) HERE) [SHERWIN-\[WILL\]IAMS]那么使用这个更复杂的正则表达式:/\s*(?:\[[^\\\]]*(?:\\.[^\\\]]*)*\]|\([^\\)]*(?:\\.[^\\)]*)*\))\s*/g正则表达式演示 2
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答