Javascript 正则表达式查找字符串之间的连接字符
我有以下问题,我允许我的用户在编辑器中输入代码,我想替换串联字符,这里是我的示例:Javascript 正则表达式查找字符串之间的连接字符,javascript,regex,Javascript,Regex,我有以下问题,我允许我的用户在编辑器中输入代码,我想替换串联字符,这里是我的示例: 1) "tttt"+"zzzz" 2) "+" 3) 'aaaa'+'cccc' 4) "'+'" 5) "az+d" 6) ""+""+"" 7) 1+1 对于1,3和6,我应该替换“+” 现在我有了这个正则表达式: (["'])(?:(?=(\\?))\2.)*?\1 选择我不想要的东西 这里是我使用的在线工具的链接为什么要使用regex,你不需要一小串代码的performance,只需要普通代码就可以
1) "tttt"+"zzzz"
2) "+"
3) 'aaaa'+'cccc'
4) "'+'"
5) "az+d"
6) ""+""+""
7) 1+1
对于1,3和6,我应该替换“+”
现在我有了这个正则表达式:
(["'])(?:(?=(\\?))\2.)*?\1
选择我不想要的东西
这里是我使用的在线工具的链接为什么要使用regex,你不需要一小串代码的performance,只需要普通代码就可以了。 拆分字符串,如果索引为偶数,只需删除“+”
value.split('"').map((v, ind) =>
v.trim() === '+' && 0 === ind % 2 ? '' : v
).join('"')
捕获您需要保留的内容,只匹配您需要替换的内容-如果您真的允许他们输入代码,单个正则表达式不足以解析它,甚至不足以完成上面显示的简单操作。(从上下文中,我将推断JavaScript代码,但这几乎适用于我们称为“代码”的任何东西。)我只需要为我用来计算代码的库替换一个字符,但是Wiktor方法的问题是,我还有字符串
。replace(/([“'))(?:(?=(\\?)\2.)*?\1 |([^])/g,函数(a,x,y,z){返回z?”:a;})
?我喜欢你这样做,但这是为了节省空间。我也尝试过使用\w,但没有成功