javascript - 从 Javascript 中的字符串中删除括号

标签 javascript

  x = x.replace(/[{()}]/g, '');
  y = y.replace(/[{()}]/g, '');

  x = x.replace(/[\[\]']+/g, '');
  y = y.replace(/[\[\]']+/g, '');

好的,我明白第一段代码删除了大括号,第二段代码删除了常规括号。我现在想删除括号。有人可以告诉我怎么做吗?

我只是通过谷歌搜索得到了上面的代码..但我不明白他们是“如何”想出这个的,有人可以解释一下吗?谢谢

最佳答案

第一个正则表达式

x = x.replace(/[{()}]/g, '');
y = y.replace(/[{()}]/g, '');

在您的第一个正则表达式 /[{()}]/g 中,外部方括号 [] 构成了一个字符类,它将匹配其中指定的字符之一。在这种情况下,字符 { ( ) }

/regexp/ 之外,您有 g(全局)修饰符,这意味着您的整个正则表达式将匹配尽可能多的次数它可以,而且它不仅会进入第一场比赛。

第二个正则表达式

x = x.replace(/[\[\]']+/g, '');
y = y.replace(/[\[\]']+/g, '');

在您的第二个正则表达式 /[\[\]']+/g 中,外部方括号 [] 构成了一个字符类,它将匹配其中指定的字符之一。在这种情况下,字符 [ ] '.

请注意,方括号在 [字符类] 中显示为 \[ \]

在您指定了一个+ 量词之后,它使前面的规则连续匹配一次或多次 次。请注意,这是多余的,即使它有效,这也不是您想要的。

/regularexpression/ 之外,您有 g(全局)修饰符,这意味着您的整个正则表达式将匹配尽可能多的次数它可以,而且它不仅会进入第一场比赛。


建议的解决方案

run1.onclick = function() {
  //removes "(" and ")"
  output1.innerHTML = input1.value.replace(/[()]/g, ''); 
}

run2.onclick = function() {
  //removes (){}[]
  output2.innerHTML = input2.value.replace(/[\])}[{(]/g, ''); 
}
<p>Remove ()</p>
<input id="input1" type="text" value="(123) 1234-1234">
<input id="run1" type="button" value="run">
<span id="output1"></span>

<hr>

<p>Remove ()[]{}</p>
<input id="input2" type="text" value="Hello (this) is [] a {{test}}!">
<input id="run2" type="button" value="run">
<span id="output2"></span>

关于javascript - 从 Javascript 中的字符串中删除括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10844194/

相关文章:

javascript - 排队/节流 jQuery ajax 请求

javascript - 幻灯片功能

javascript - LitElement 无限滚动重定位问题

javascript - Array.forEach 是异步的吗?

javascript - 液体变量未在 {% if %} 内渲染

javascript - AngularJS-检查值未定义或为空

javascript - Angular - 修改 $http 调用中的 Controller 变量

javascript - 无法连接本地主机 :8081 using node. js

javascript - 在 Node.js 中,如何在不添加字节的情况下更改(覆盖)二进制文件中的字节

javascript - angular-cli ng 服务错误