Javascript 如何使用JS String.replace并使用RegEx替换为括号组的一部分
我有以下代码:Javascript 如何使用JS String.replace并使用RegEx替换为括号组的一部分,javascript,regex,Javascript,Regex,我有以下代码: 字符串 .替换(/^1[xyz]/g,“$1”) .替换(/-1[xyz]/g,“-$1”) .替换(/1[xyz]/g,“$1”); 其中string是一个数学表达式。我希望将$1替换为x、y或z,具体取决于括号中匹配的字母。这将替换字符串中的所有事件。如何使其正确更换 示例: 1x→ x -1x→ -x 5x+1y→ 5x+y 1x-1z→ x-z 11x+21y→ 11x+21y(仅替换1,而不是11、21等) 您可以使用 \b1([xyz]) \b1一个单词边界,
字符串
.替换(/^1[xyz]/g,“$1”)
.替换(/-1[xyz]/g,“-$1”)
.替换(/1[xyz]/g,“$1”);
其中string
是一个数学表达式。我希望将$1
替换为x、y或z,具体取决于括号中匹配的字母。这将替换字符串中的所有事件。如何使其正确更换
示例:
→ <代码>x1x
→ <代码>-x-1x
→ <代码>5x+y5x+1y
→ <代码>x-z1x-1z
→ <代码>11x+21y(仅替换1,而不是11、21等)11x+21y
\b1([xyz])
一个单词边界,然后匹配1\b1
捕获组1,匹配([xyz])
x
或y
z
const模式=/\b1([xyz])/g;
[
“1x”,
“-1x”,
“5x+1y”,
“1x-1z”,
“11x+21y”
].forEach(s=>console.log(s+“=>”+s.replace(模式,$1”))代码>您可以使用
\b1([xyz])
\b1
一个单词边界,然后匹配1
([xyz])
捕获组1,匹配x
y
或z
在更换使用组1中
const模式=/\b1([xyz])/g;
[
“1x”,
“-1x”,
“5x+1y”,
“1x-1z”,
“11x+21y”
].forEach(s=>console.log(s+“=>”+s.replace(模式,$1”))代码>要考虑的另一个选项是使用一个实际的表达式解析器,这将避免长期的许多头痛。另一个考虑的选项是使用一个实际的表达式解析器,从长远来看,这将避免很多头痛。