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

Remove Parenthesis from String in Javascript

本文关键字:删除 Javascript 字符串      更新时间:2023-09-26
  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外部方括号中,[]创建一个字符类,它将匹配其中指定的字符之一。在这种情况下,字符[ ] '

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

指定+量词后,它将使前面的规则连续匹配 one or more 次。请注意,这是多余的,即使它有效,也不是您想要的。

/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>

run1.onclick = function() {
  //removes "(" and "), white space and -"
  // output1.innerHTML = input1.value.replace(/[()]/g, '');
  output1.innerHTML = input1.value.replace(/[()' 's-]+/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>