我试图用不同的字符替换字符串中的方括号,以便它们在 SQL 中正确转义。例如,我需要将 [ 替换为 [[],并将 ] 替换为 []]。
我环顾四周,但只能找到用一个字符替换单个括号或用相同字符替换两个括号的解决方案,这两种方法都不符合我的需要。
我可以使用正则表达式在单独的替换调用中替换两者,因此要替换左侧:
if (someString.value.indexOf('[') != -1) {
someString.value = someString.value.replace(/[\[']+/g, '[[]');
}
但很明显,如果我随后对右括号尝试相同的操作:
if (someString.value.indexOf(']') != -1) {
someString.value = someString.value.replace(/[\]']+/g, '[]]');
它还会考虑在第一条语句中添加的额外括号,这会完全弄乱字符串
如何替换字符串,例如,以下内容:
"[someText]"
将替换为:
"[[]someText[]]"
我应该注意,我需要替换方括号内包含文本的任何实例,而不仅仅是第一个实例。
最佳答案
您可以使用带有 replace
的函数:
someString.value = someString.value.replace(/[\[\]]/g, function(match) {
return match == '[' ? '[[]' : '[]]';
});
关于javascript - JS Regex 分别替换左右括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33627072/