我试图在给定字符串中的特定字符(")之前附加字符('')。这是我的功能:
function addChar(test){
var txt2=""
for(i=0; i<test.length; i++){
if(test[i] === '"'){
txt2 += test.slice(i-1,i) + '\' ;
}
}
return txt2
当我在这个字符串上调用函数时:
let string = '"'+'STR1'+'"' + " "+ "AND" +" "+ '"' + 'STR2' + '"' \ ("STR1" AND "STR2")
返回1 2
,但我想要\"STR1\" AND \"STR2\"
。我如何修复我的代码,以便打印出来?
我不建议遍历所有字符串字符,因为这样不容易读,而且很容易出错。尝试代替匹配所有双引号,并用"
代替它们。注意,使用//g
来匹配所有引号,并使用\
而不是来转义
。
console.log('"STR1" AND "STR2"'.replace(/"/g, '\"'));
直接替换一下怎么样?
let string = '"' + 'STR1'+'"' + " "+ "AND" +" "+ '"' + 'STR2' + '"'; // ("STR1" AND "STR2")
string = string.replace(/"/g,'\\"');
console.log(string);