gpt4 book ai didi

javascript - 删除括号前后的所有空格

转载 作者:行者123 更新时间:2023-11-29 10:28:36 25 4
gpt4 key购买 nike

我想删除任何括号之前之后的一个或多个空格。正在关注this post使用以下正则表达式解决了 PHP 的问题

(?<=[([]) +| +(?=[)\]])

现在我想在 Javascript 中做同样的事情,但是 Javascript 正则表达式引擎不具有与 PHP 相同的先行和后行。我设法使以下正则表达式至少可以在 Javascript 中使用,但它删除了所有空格:

?![([]) +| +(?=[)\]])

参见 Regex101 test .

给定的字符串:

This is ( a sample     ) [           string ] to play with

预期结果:

This is (a sample) [string] to play with

最佳答案

您可以改用捕获组并替换为它们的占位符以恢复结果中的方括号/圆括号:

.replace(/([([])\s+|\s+([)\]])/g, "$1$2");

参见 regex demo

详情

  • ([([])\s+ - 第 1 组捕获 ([(引用 $1 来自字符串替换模式),然后是 1+ 个空格
  • | - 或者
  • \s+([)\]]) - 1+ 个空格后跟 )] 捕获到第 2 组(称为使用来自字符串替换模式的 $2)

JS 演示:

var strs = ['This is ( a sample ) [ string ] to play with', 
'This is ( a sample ) [ string] to play with'];
var rx = /([([])\s+|\s+([)\]])/g;
for (var s of strs) {
console.log(s+ " =>\n"+ s.replace(rx, "$1$2"));
}

关于javascript - 删除括号前后的所有空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52188557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com