编程语言
首页 > 编程语言> > javascript-如何安全地将JS字符串变量包装在双引号字符中?

javascript-如何安全地将JS字符串变量包装在双引号字符中?

作者:互联网

显然,当您自己创建实际的字符串文字时,您自己反斜杠转义了双引号字符.

var foo = "baz\"bat";

就像处理少数其他控制字符一样,例如换行符和反斜杠.

var bar = "baz\\bat\nmynew line and a \"quote\" ";

但是,如果您只是将现有变量包装在引号中,即要将其提供给其他需要使用引号输入的系统,则会有些混乱.

显然,您必须转义字符串中所有可能的双引号字符.

var doubleQuoteRe = /\"/g;
var quoted = "\"" + unquoted.replace(escaper, '\\\"') + "\"";

但是根据某些人的说法,您现在还必须担心在变量中转义文字反斜杠字符.换句话说,使用的锤子比我的小正则表达式大得多.但是我不明白为什么.

解决方法:

您可能要避免转义已经转义的引号-

String.prototype.inquotes=function(){
 return '"'+this.replace(/(^|[^\\])"/g,'$1\\"')+'"';
}

标签:double-quotes,javascript,regex
来源: https://codeday.me/bug/20191210/2100055.html